User Assistance for Components
As a component author, you should provide assistance and documentation for your users about your components. You can provide assistance at design time through descriptive metadata and at run time by calling HTML Help.
You can supply descriptive information about your component through the use of attributes. Attributes are specialized classes that are attached to other classes or class members and are emitted into metadata at compile time. Attributes can provide information to the user or directly to the development environment. For example, the System.ComponentModel.DescriptionAttribute attribute, when attached to a property or event, displays a brief descriptive string in the Properties window. Other attributes affect the way the development environment behaves with the component. For example, the System.ComponentModel.BrowsableAttribute attribute determines whether a property appears in the Properties window.
Run-time assistance is not usually supplied by a component, but there are some cases where it may make sense. For example, a very large and complex component may have built-in Help so the developers do not have to write extensive documentation. The .NET Framework System.Windows.Forms.Help class encapsulates the HTML Help 1.x engine, and can be used to supply Help to your users at run time with HTML or .chm files. For details, see How to: Specify a Help File for Your Component.