The .NET Framework provides a set of design-time services that can extend the capabilities of a designer. These services can be obtained using the GetService method of a component sited in design mode. You can add your own service types that can be accessed from within a design mode project using the AddService method of the IDesignerHost service interface.
The IComponentChangeService interface allows a designer to receive notifications of when components are changed, added, or removed from the design-time environment.
The IDesignerEventService interface allows a designer to receive notifications when designers are added or removed from the design-time environment and notifications when the current component selection changes.
The IDesignerFilter interface allows a designer to add to and filter the set of properties displayed in a property browser for its component.
The IDesignerHost interface provides an interface for adding and retrieving services, handling events related to designer state, detecting whether a designer is currently loading, and managing components or designer transactions. Designer transactions enable sequences of actions to occur in a mode that prevents the design-time view from refreshing its display until completion of a sequence of actions in order to improve performance, while providing a mechanism to enable the component actions of a transaction to be undone and the previous state restored.
The IDesignerOptionService interface allows a designer to get and set the values of properties listed in the Windows Forms Designer property grid accessible from the Options menu item located on the Tools menu in the Visual Studio environment. The DesignerOptionService class extends the flexibility of querying for options.
The IDictionaryService interface allows a designer to use a key-based collection for user-defined data and key pairs that can be accessed by key or value.
The IEventBindingService interface allows a designer to expose events for a component in a property browser at design time while the component is selected.
The IExtenderListService interface allows a designer to obtain the currently active extender providers in the design-time environment. The IExtenderProviderService interface allows a designer to add or remove extender providers at design time.
The IHelpService interface allows a designer to create and remove help service contexts, create and remove help context attributes, and display help topics by keyword or URL.
The IInheritanceService interface allows a designer to search for components of derived classes and identify any inheritance attributes of each.
The IMenuCommandService interface allows a designer to search for, add, remove, or invoke menu commands in the design-time environment.
The IReferenceService interface allows a designer to obtain the name of an object by reference, a reference to an object by name, a reference to the parent of a specified component, or references to objects of a specified type in the current design mode project.
The IResourceService interface allows a designer to obtain a resource reader or resource writer for a specified CultureInfo.
The IRootDesigner interface allows a designer to replace the root designer view with a custom designer view display. The IRootDesigner interface must be implemented by the designer for a component.
The ISelectionService interface allows a designer to get a set of references to the currently selected components, set the selection to a component or set of components, and to determine whether any component is selected.
The IServiceContainer interface allows a designer to add or remove services that can be used by other components or designers.
The ITypeDescriptorFilterService interface allows a component or designer to filter the attributes, events and properties exposed by any component at design time. The ITypeDescriptorFilterService interface must be implemented by a class that can be added as a service using the AddService method of the Site of a sited component in design mode.
The ITypeResolutionService interface allows a designer to add a reference to an assembly to the project, obtain a type or assembly by name, and obtain the path of a specified assembly.
The DesignerActionService and DesignerActionUIService classes implement the smart tag feature for custom designers. For more information, see Designer Commands and the DesignerAction Object Model for Windows Forms.
The BehaviorService manages user interface in a designer. It provides a uniform way to manipulate user interface elements such as mouse-related events, menu commands, and OLE drag-and-drop operations at design time. For more information, see Behavior Service Overview.
The CodeDomComponentSerializationService class serializes a set of components or serializable objects into a serialization store. For more information, see Designer Serialization Overview.