DesignerActionList.GetSortedActionItems Method

Definition

Returns the collection of DesignerActionItem objects contained in the list.

public:
 virtual System::ComponentModel::Design::DesignerActionItemCollection ^ GetSortedActionItems();
public virtual System.ComponentModel.Design.DesignerActionItemCollection GetSortedActionItems ();
abstract member GetSortedActionItems : unit -> System.ComponentModel.Design.DesignerActionItemCollection
override this.GetSortedActionItems : unit -> System.ComponentModel.Design.DesignerActionItemCollection
Public Overridable Function GetSortedActionItems () As DesignerActionItemCollection

Returns

A DesignerActionItem array that contains the items in this list.

Examples

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",
                         "Appearance",
                         "Inverts the fore and background colors.",
                          true));
    }
    items.Add(new DesignerActionPropertyItem("Text",
                     "Text String", "Appearance",
                     "Sets the display text."));

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

    return items;
}
Public Overrides Function GetSortedActionItems() _
As DesignerActionItemCollection
    Dim items As 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 Not LockColors Then
        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( _
        Me, _
        "InvertColors", _
        "Invert Colors", _
        "Appearance", _
        "Inverts the fore and background colors.", _
        True))
    End If
    items.Add( _
    New DesignerActionPropertyItem( _
    "Text", _
    "Text String", _
    "Appearance", _
    "Sets the display text."))

    'Create entries for static Information section.
    Dim location As New StringBuilder("Location: ")
    location.Append(colLabel.Location)
    Dim size As New StringBuilder("Size: ")
    size.Append(colLabel.Size)

    items.Add( _
    New DesignerActionTextItem( _
    location.ToString(), _
    "Information"))

    items.Add( _
    New DesignerActionTextItem( _
    size.ToString(), _
    "Information"))

    Return items
End Function

Remarks

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.

Type Description
DesignerActionHeaderItem The group label, displayed in bold.
DesignerActionTextItem A label, displayed in a plain font.
DesignerActionPropertyItem A panel item associated with a property. May also display a check mark or property editor associated with the underlying property.
DesignerActionMethodItem 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.

Applies to

See also