元件是實作System.ComponentModel.IComponent界面的類別,或者是直接或間接繼承自實作IComponent的類別。 .NET 元件是可重複使用的物件,可以與其他物件互動,並提供外部資源和設計時間支援的控制。
元件的重要功能是其可設計,這表示可以在Visual Studio集成開發環境中使用屬於元件的類別。 元件可以新增至工具箱、拖放到窗體上,並在設計介面上操作。 元件的基本設計時間支援內建於 .NET 中。 元件開發人員不需要執行任何其他工作,才能利用基底設計時間功能。
控件與元件類似,因為兩者都是可設計的。 不過,控件會提供使用者介面,而元件則不會。 控制項必須衍生自其中一個基底控制項類別: Control 或 Control。
建立元件的時機
如果您的類別將用於設計介面上(例如 Windows Forms 或 Web Forms 設計工具),但沒有使用者介面,它應該是元件並實作IComponent,或衍生自直接或間接實作IComponent的類別。
Component 和 MarshalByValueComponent 類別是 IComponent 介面的基底實作。 這些類別之間的主要差異在於類別 Component 是以傳址方式封送處理,而 IComponent 是由值封送處理。 下列清單提供實施者的一般指導方針。
如果您的元件需要以傳址方式封送處理,請衍生自 Component。
如果您的元件需要依值序列化,請繼承自 MarshalByValueComponent。
如果您的元件因為單一繼承而無法衍生自其中一個基底實作,請實作 IComponent。
元件類別
System.ComponentModel命名空間提供類別,這些類別可用來實作元件和控件的運行時間和設計時間行為。 這個命名空間包含實作屬性和型別轉換器的基類和介面、系結至數據源和授權元件。
核心元件類別包括:
Component。 IComponent 介面的基礎實作。 這個類別可在應用程式之間啟用對象共用。
MarshalByValueComponent。 IComponent 介面的基礎實作。
Container。 介面的 IContainer 基底實作。 這個類別會封裝零個或多個元件。
元件授權的一些類別包括:
License。 所有授權的抽象基礎類別。 授權會授與一個元件的特定實例。
LicenseManager。 提供屬性和方法,將授權新增至元件及管理 LicenseProvider。
LicenseProvider。 實作授權提供者的抽象基類。
LicenseProviderAttribute。 指定 LicenseProvider 類別要搭配使用的類別。
通常用來描述和保存元件的類別。
TypeDescriptor。 提供元件特性的相關信息,例如其屬性、屬性和事件。
EventDescriptor。 提供事件的相關信息。
PropertyDescriptor。 提供有關屬性的資訊。
相關區段
針對控制項和元件撰寫進行疑難排解
說明如何修正常見問題。