DesignerActionService Class

Establishes a design-time service that manages the collection of DesignerActionItem objects for components.

Namespace: System.ComponentModel.Design
Assembly: System.Design (in

public class DesignerActionService : IDisposable
public class DesignerActionService implements IDisposable
public class DesignerActionService implements IDisposable
Not applicable.

The DesignerActionService class is responsible for managing the collection of 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 DesignerActionService is actually the driving service behind both the push and pull models; however, in the latter case it operates implicitly.

DesignerActionService provides a straightforward interface for accessing and manipulating the items for each component, including the following methods and events:

  • The Contains method determines whether the DesignerActionService is currently managing a particular component.

  • The GetComponentActions method supports the enumeration of the lists of items.

  • The Add method allows adding a DesignerActionList or DesignerActionListCollection to the set of existing items for a component instance. In contrast, the Remove method removes one or all of the item lists associated with a component.


    The Add method represents the direct push model of associating panel items with a component. In contrast, the pull model relies on overriding the ActionLists property of the designer class for that component. The design environment is responsible for adding these items into the current DesignerActionService when a component is created on the design surface.


    The Add, Remove, Contains, and Clear methods only consider or affect push-model items.

  • The 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 DesignerActionItem objects and designer verbs.

If a component designer does not explicitly specify a DesignerActionList (that is, it does not contain an overridden ActionLists property), then a list will be created from existing designer verbs. These verbs are specified by the 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 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 DesignerActionUIService to control the display of your designer's ActionLists.


Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.

Windows 98, Windows Server 2000 SP4, Windows Millennium Edition, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition

The Microsoft .NET Framework 3.0 is supported on Windows Vista, Microsoft Windows XP SP2, and Windows Server 2003 SP1.

.NET Framework

Supported in: 3.0, 2.0

Community Additions