DesignerActionList.GetSortedActionItems Metoda

Definicja

Zwraca kolekcję DesignerActionItem obiektów znajdujących się na liście.

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

Zwraca

DesignerActionItemCollection

Tablica zawierająca DesignerActionItem elementy na tej liście.

Przykłady

W poniższym przykładzie kodu pokazano, jak utworzyć kolekcję DesignerActionItem obiektów.

Pełny opis tego przykładu kodu można znaleźć w temacie How to: Attach Smart Tags to a Windows Forms Component (Instrukcje: dołączanie tagów inteligentnych do składnika 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

Uwagi

Metoda virtual GetSortedActionItems jest implementowana w celu zwrócenia w oczekiwanej kolejności wyświetlania kolekcji obiektów pochodzących z DesignerActionItem klasy. Te elementy mogą być następującymi typami.

Typ Opis
DesignerActionHeaderItem Etykieta grupy wyświetlana pogrubioną.
DesignerActionTextItem Etykieta wyświetlana w postaci zwykłej czcionki.
DesignerActionPropertyItem Element panelu skojarzony z właściwością. Może również wyświetlać znacznik wyboru lub edytor właściwości skojarzony z właściwością bazową.
DesignerActionMethodItem Element panelu wyświetlany jako hiperlink i skojarzony z metodą.

Dla każdej DesignerActionMethodItem metody i DesignerActionPropertyItemnależy dodać odpowiednią metodę lub właściwość do klasy dostarczonej przez programistę pochodzącej DesignerActionList z klasy . Każda metoda i element właściwości są wyświetlane jako aktywny wpis; interakcja z nim za pośrednictwem interfejsu użytkownika wywołuje odpowiednio odpowiednią metodę lub właściwość.

Elementy właściwości mają specjalny interfejs elementu panelu, który umożliwia wyświetlanie i manipulowanie odpowiednimi wartościami właściwości. Aby uzyskać więcej informacji, zobacz klasę DesignerActionPropertyItem .

Kolejność elementów w zwróconej tablicy odzwierciedla kolejność wyświetlania ich w panelu. Elementy są pogrupowane zgodnie z właściwością Category , korzystając z następujących reguł:

  • Kategoria pierwszego napotkanego elementu oznacza początek pierwszej grupy. Ta grupa będzie kontynuowana tak długo, jak każdy element, który zakończył się powodzeniem, ma tę samą kategorię. Po napotkaniu innej, nowej kategorii zostanie utworzona nowa grupa i element zostanie umieszczony w niej.

  • Jeśli element ma typ inny niż bieżąca grupa, ale ta kategoria została już użyta, element zostanie umieszczony w pasującej istniejącej kategorii.

  • Jeśli element nie ma kategorii, zostanie umieszczony w innej grupie na końcu panelu. Ta grupa zawiera również elementy, których AllowAssociate właściwość jest ustawiona na falsewartość .

Metoda jest wywoływana GetSortedActionItems po utworzeniu panelu. Należy wywołać metodę Refresh , aby zaktualizować listę elementów wyświetlanych w panelu.

Dotyczy

Zobacz też