DesignerActionService Class


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

public ref class DesignerActionService : IDisposable
public class DesignerActionService : IDisposable
type DesignerActionService = class
    interface IDisposable
Public Class DesignerActionService
Implements IDisposable


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.



Initializes a new instance of the DesignerActionService class.


Add(IComponent, DesignerActionList)

Adds a DesignerActionList to the current collection of managed smart tags.

Add(IComponent, DesignerActionListCollection)

Adds a DesignerActionListCollection to the current collection of managed smart tags.


Releases all components from management and clears all push-model smart tag lists.


Determines whether the current smart tag service manages the action lists for the specified component.


Releases all resources used by the DesignerActionService class.


Releases the unmanaged resources used by the DesignerActionService and optionally releases the managed resources.


Determines whether the specified object is equal to the current object.

(Inherited from Object)

Returns the collection of smart tag item lists associated with a component.

GetComponentActions(IComponent, ComponentActionsType)

Returns the collection of smart tag item lists of the specified type associated with a component.

GetComponentActions(IComponent, ComponentActionsType)
GetComponentDesignerActions(IComponent, DesignerActionListCollection)

Retrieves the pull-model smart tags associated with a component.

GetComponentServiceActions(IComponent, DesignerActionListCollection)

Retrieves the push-model smart tags associated with a component.


Serves as the default hash function.

(Inherited from Object)

Gets the Type of the current instance.

(Inherited from Object)

Creates a shallow copy of the current Object.

(Inherited from Object)

Removes the specified smart tag list from all components managed by the current service.


Removes all the smart tag lists associated with the specified component.

Remove(IComponent, DesignerActionList)

Removes the specified smart tag list from the specified component.


Returns a string that represents the current object.

(Inherited from Object)



Occurs when a DesignerActionList is removed or added for any component.

Applies to

See also