This interface, implemented by Component and MarshalByValueComponent provides the basic functionality required by components in the framework. Specifically, this means providing a way of setting the Site for the component (through which the component can discover the services provided by its hosting environment), and a Disposed event, to inform the host when it has been cleaned up. In your own applications, you would normally derive from one of the classes that implement this interface, such as Component or System.Windows.Forms.Control . public interface IComponent : IDisposable { // Public Instance Properties public ISite Site {set; get; } // Events public event EventHandler Disposed ; } Implemented ByComponent , MarshalByValueComponent Returned ByComponentCollection.this , ISite.Component , System.Drawing.Design.ToolboxComponentsCreatedEventArgs.Components , System.Drawing.Design.ToolboxItem.{CreateComponents( ) , CreateComponentsCore()} , System.Windows.Forms.Design.ComponentEditorPage.{Component , GetSelectedComponent()} , System.Windows.Forms.Design.ParentControlDesigner.CreateToolCore( ) Passed ToMultiple types |