Поделиться через


DesignerActionList.GetSortedActionItems Метод

Определение

Возвращает коллекцию объектов DesignerActionItem, содержащихся в списке.

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

Возвращаемое значение

Массив DesignerActionItem, содержащий элементы в этом списке.

Примеры

В следующем примере кода показано, как создать коллекцию объектов DesignerActionItem.

Полное описание этого примера кода см. в разделе Практическое руководство. Присоединение смарт-тегов к компоненту Windows Forms.

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

Комментарии

Метод virtualGetSortedActionItems реализуется для возврата в ожидаемом порядке отображения коллекции объектов, производных от класса DesignerActionItem. Эти элементы могут иметь следующие определенные типы.

Тип Описание
DesignerActionHeaderItem Метка группы, отображаемая полужирным шрифтом.
DesignerActionTextItem Метка, отображаемая в простом шрифте.
DesignerActionPropertyItem Элемент панели, связанный с свойством. Также может отображаться флажок или редактор свойств, связанный с базовым свойством.
DesignerActionMethodItem Элемент панели, отображаемый как гиперссылка и связанный с методом.

Для каждого DesignerActionMethodItem и DesignerActionPropertyItemсоответствующий метод или свойство необходимо добавить в предоставленный программистом класс, производный от класса DesignerActionList. Каждый элемент метода и свойства отображается как активная запись; Взаимодействие с ним через пользовательский интерфейс вызывает соответствующий метод или свойство соответственно.

Элементы свойств имеют специальный интерфейс элемента панели, который позволяет отображать и манипулировать соответствующими значениями свойств. Дополнительные сведения см. в DesignerActionPropertyItem классе.

Порядок элементов в возвращаемом массиве отражает порядок их отображения на панели. Элементы группируются в соответствии со свойством Category, используя следующие правила:

  • Категория первого элемента, обнаруженного, означает начало первой группы. Эта группа продолжается до тех пор, пока каждый успешный элемент имеет одну и ту же категорию. При обнаружении элемента другой категории создается новая группа, а элемент помещается в него.

  • Если элемент имеет тип, отличный от текущей группы, но эта категория уже использовалась, элемент помещается в соответствующую существующую категорию.

  • Если элемент не имеет категории, он помещается в другие группы в конце панели. Эта группа также содержит элементы, свойство AllowAssociate которых имеет значение false.

Метод GetSortedActionItems вызывается при первом создании панели. Чтобы обновить список элементов, отображаемых на панели, необходимо вызвать метод Refresh.

Применяется к

См. также раздел