DesignerActionList.GetSortedActionItems Method

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 virtual GetSortedActionItems 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

Supported in: 4.5, 4, 3.5, 3.0, 2.0

Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (Server Core Role not supported), Windows Server 2008 R2 (Server Core Role supported with SP1 or later; Itanium not supported)

The .NET Framework does not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.

Was this page helpful?
(1500 characters remaining)
Thank you for your feedback
© 2014 Microsoft