Establishes a design-time service that manages the collection of System.ComponentModel.Design.DesignerActionItem objects for components.
See Also: DesignerActionService Members
The System.ComponentModel.Design.DesignerActionService class is responsible for managing the collection of System.ComponentModel.Design.DesignerActionItem objects for each instance of a component that exists on a form at design time. This class enables a direct push model of item creation, and is primarily intended for use by design-time tool developers, although it can also be used by component and custom control developers.
Design-time tool developers will need to determine the list of items to display for a component and determine when this list changes. They may also create add-ins that operate in conjunction with smart tag panel objects.
Advanced component developers may need to dynamically control the items associated with a component, thus replacing or supplementing the standard pull model. For example, panel commands can be altered depending on the context of their use and the design-time state of the component.
The System.ComponentModel.Design.DesignerActionService is actually the driving service behind both the push and pull models; however, in the latter case it operates implicitly.
System.ComponentModel.Design.DesignerActionService provides a straightforward interface for accessing and manipulating the items for each component, including the following methods and events:
The DesignerActionService.Contains(System.ComponentModel.IComponent) method determines whether the System.ComponentModel.Design.DesignerActionService is currently managing a particular component.
The erload:System.ComponentModel.Design.DesignerActionService.GetComponentActions method supports the enumeration of the lists of items.
The erload:System.ComponentModel.Design.DesignerActionService.Add method allows adding a System.ComponentModel.Design.DesignerActionList or System.ComponentModel.Design.DesignerActionListCollection to the set of existing items for a component instance. In contrast, the erload:System.ComponentModel.Design.DesignerActionService.Remove method removes one or all of the item lists associated with a component.
The DesignerActionService.DesignerActionListsChanged event indicates when the collection of items changes for a component.
Because it is often desirable to use some of the same panel items in both the component's design-time shortcut menu and its panel, a large degree of interoperability exists between System.ComponentModel.Design.DesignerActionItem objects and designer verbs.
If a component designer does not explicitly specify a System.ComponentModel.Design.DesignerActionList (that is, it does not contain an overridden ComponentDesigner.ActionLists property), then a list will be created from existing designer verbs. These verbs are specified by the ComponentDesigner.Verbs property. In this case, an internal verb list class is used to contain the collection of verb item panel entries.
If you want a System.ComponentModel.Design.DesignerActionMethodItem to be used both as a panel entry and a design-time shortcut menu entry, then you can set the includeAsDesignerVerb parameter in the item's constructor.
Use the System.ComponentModel.Design.DesignerActionUIService to control the display of your designer's ComponentDesigner.ActionLists.