DesignerActionItem Class
Collapse the table of content
Expand the table of content

DesignerActionItem Class


Provides the base class for types that represent a panel item on a smart tag panel.

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

public abstract class DesignerActionItem

System_CAPS_pubmethodDesignerActionItem(String, String, String)

Initializes a new instance of the DesignerActionItem class.


Gets or sets a value indicating whether to allow this item to be placed into a group of items that have the same Category property value.


Gets the group name for an item.


Gets the supplemental text for the item.


Gets the text for this item.


Gets a reference to a collection that can be used to store programmer-defined key/value pairs.


Gets or sets a value that indicates whether this item appears in source code view.


Determines whether the specified object is equal to the current object.(Inherited from Object.)


Allows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection.(Inherited from Object.)


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.)


Returns a string that represents the current object.(Inherited from Object.)

The DesignerActionItem class serves as an abstract base for classes that represent individual panel items in a smart tag panel, which represents a menu-like user interface (UI) for smart tags. The .NET Framework supplies derived classes that represent the different common entries in a smart tag panel, including plain text, header text, properties and methods of the associated DesignerActionList class, and designer verbs.

Typically, your DesignerAction feature is defined in a programmer-supplied class derived from DesignerActionList, which contains a GetSortedActionItems method that groups individual panel items together to form the smart tag panel. The DesignerActionPropertyItem and DesignerActionMethodItem types are associated with members of the class derived from DesignerActionList, and DesignerActionMethodItem objects are activated when their associated panel entry is selected by the user.


Forms and dialog boxes can be displayed by members of the class derived from DesignerActionList. By default, the parent of these windows will be the container window for the smart tag panel. Explicitly parenting these child windows to another service or window may cause items to display improperly.

The following code example demonstrates how to create a collection of DesignerActionItem objects.

For a full example of implementing smart tags, see How to: Attach Smart Tags to a Windows Forms Component.

public override DesignerActionItemCollection GetSortedActionItems()
    DesignerActionItemCollection items = new DesignerActionItemCollection();

    //Define static section header entries.
    items.Add(new DesignerActionHeaderItem("Appearance"));
    items.Add(new DesignerActionHeaderItem("Information"));

    //Boolean property for locking color selections.
    items.Add(new DesignerActionPropertyItem("LockColors",
                     "Lock Colors", "Appearance",
                     "Locks the color properties."));
    if (!LockColors)
        items.Add(new DesignerActionPropertyItem("BackColor",
                         "Back Color", "Appearance",
                         "Selects the background color."));
        items.Add(new DesignerActionPropertyItem("ForeColor",
                         "Fore Color", "Appearance",
                         "Selects the foreground color."));

        //This next method item is also added to the context menu 
        // (as a designer verb).
        items.Add(new DesignerActionMethodItem(this,
                         "InvertColors", "Invert Colors",
                         "Inverts the fore and background colors.",
    items.Add(new DesignerActionPropertyItem("Text",
                     "Text String", "Appearance",
                     "Sets the display text."));

    //Create entries for static Information section.
    StringBuilder location = new StringBuilder("Location: ");
    StringBuilder size = new StringBuilder("Size: ");
    items.Add(new DesignerActionTextItem(location.ToString(),
    items.Add(new DesignerActionTextItem(size.ToString(),

    return items;

.NET Framework
Available since 2.0

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

Return to top
© 2015 Microsoft