DesignerActionList.GetSortedActionItems Method ()


The .NET API Reference documentation has a new home. Visit the .NET API Browser on to see the new experience.

Returns the collection of DesignerActionItem objects contained in the list.

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

public virtual DesignerActionItemCollection GetSortedActionItems()

Return Value

Type: System.ComponentModel.Design.DesignerActionItemCollection

A DesignerActionItem array that contains the items in this list.

The virtualGetSortedActionItems method is implemented to return, in the expected display order, a collection of objects derived from the DesignerActionItem class. These items can be of the following specific types.




The group label, displayed in bold.


A label, displayed in a plain font.


A panel item associated with a property. May also display a check mark or property editor associated with the underlying property.


A panel item displayed as a hyperlink and associated with a method.

For every DesignerActionMethodItem and DesignerActionPropertyItem, a corresponding method or property must be added to the programmer-supplied class derived from the DesignerActionList class. Each method and property item is displayed as an active entry; interacting with it through the user interface (UI) invokes the corresponding method or property, respectively.

Property items have a special panel-item interface that enables display and manipulation of their corresponding property values. For more information, see the DesignerActionPropertyItem class.

The order of the items in the returned array reflects the order that they will appear in the panel. The items are grouped according to the Category property, using the following rules:

  • The category of the first item encountered signifies the start of the first group. That group continues as long as each succeeding item is of the same category. When an item of a different, new category is encountered, a new group is created and the item is placed in it.

  • If an item has a type different than the current group, but that category has already been used, the item is placed in the matching existing category.

  • If an item does not have a category, it is placed in a miscellaneous group at the end of the panel. This group also contains items whose AllowAssociate property is set to false.

The GetSortedActionItems method is called when the panel is first created. You must call the Refresh method to update the list of items displayed in the panel.

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

For a complete explanation of this code example, 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
Return to top