控件是具有用戶界面的組件。更具體地說,我們必須回顧早期窗口的歷史根源,當控件引用任何子窗口時——按鈕、列表框、編輯框或對話框中的靜態文本。從概念上講,這些窗口控件類似於用來操作收音機或小型電器的旋鈕和按鈕。隨著控件數量的增加(組合框、日期和時間控件等。),控件逐漸成為子窗口的同義詞,無論是用於對話框還是其他類型的主窗口。沒過多久,BASIC程序員就開始編寫自己的特殊控件了,很自然的人們就想到了享受這些控件。* * *享受代碼的壹種方式是將其復制到磁盤上,但這顯然是低效的。必須有壹種機制,讓開發者創建的控件可以輕松地插入到其他程序員的應用中,這就是VBA控件、OLE控件、OCX以及最後ActiveX控件的動機。
這就是控件和組件混淆的地方。因為為了解決控件的復用問題,所有這些技術都必須首先解決更壹般的組件復用問題。(COM,如果妳還記得的話,就是組件對象模型的意思)。在軟件行話中,術語組件指的是任何可重用的對象或任何可以與其他對象交互的代碼體。子程序的發明壹度成為軟件工程的聖杯:統壹的編程理論,它使程序員能夠從基本的構建塊,即用選定的語言編寫的各種組件,構建大型系統。每壹個新的編程範例,從子例程到面向對象程序,到動態鏈接庫,到COM和。NET framework代表了壹種提供可重用性的不同方案。VBX使用dll的固化名稱。COM使用接口和IUnknown。的。NET framework使用微軟的中間語言(MSIL)層和公共語言運行時(CLR)來提供統壹的粘合。
因此,控件是組件的主要樣本(並且在歷史上推動了組件的發展),並且控件不僅僅是唯壹的組件。組件不需要顯示任何信息或用戶界面。該組件可以實現科學計算,收集性能數據,計算從1971年1月1到現在的毫秒數,或者讀取布什總統競選的保險箱中的美元數。
/document/viewdoc/?Id=1294#控件和組件