Slučování položek nabídky v ovládacím prvku Windows Forms MenuStrip

Pokud máte aplikaci s více dokumenty (MDI), můžete položky nabídky nebo celé nabídky z podřízeného formuláře sloučit do nabídek nadřazeného formuláře.

Toto téma popisuje základní koncepty spojené s slučováním položek nabídky v aplikaci MDI.

Obecné koncepty

Sloučení postupů zahrnuje cíl i správu zdrojového kódu:

  • Cílem je MenuStrip ovládací prvek v hlavním nebo nadřazené formuláři MDI, do kterého slučujete položky nabídky.

  • Zdrojem je MenuStrip ovládací prvek podřízeného formuláře MDI, který obsahuje položky nabídky, které chcete sloučit do cílové nabídky.

Vlastnost MdiWindowListItem identifikuje položku nabídky, jejíž rozevírací seznam se naplní názvy aktuální podřízené položky MDI nadřazeného formuláře MDI. Například obvykle vypíšete podřízené položky MDI, které jsou aktuálně otevřené v nabídce Okno .

Vlastnost IsMdiWindowListEntry určuje, které položky nabídky pocházejí z podřízeného MenuStrip formuláře MDI.

Položky nabídky můžete sloučit ručně nebo automaticky. Položky nabídky se sloučí stejným způsobem pro obě metody, ale sloučení se aktivuje jinak, jak je popsáno v částech Ruční sloučení a Automatické sloučení dále v tomto tématu. V ručním i automatickém sloučení má každá akce sloučení vliv na další akci sloučení.

MenuStrip Sloučení přesouvá položky nabídky z jedné ToolStrip do druhé místo klonování, jak tomu bylo v případě MainMenu.

Hodnoty MergeAction

Akci sloučení nastavíte u položek nabídky ve zdroji MenuStrip pomocí MergeAction vlastnosti.

Následující tabulka popisuje význam a typické použití dostupných akcí sloučení.

Hodnota MergeAction Popis Typické použití
Append (Výchozí) Přidá zdrojovou položku na konec kolekce cílové položky. Přidání položek nabídky na konec nabídky při aktivaci některé části programu
Insert Přidá zdrojovou položku do kolekce cílové položky v umístění určeném MergeIndex vlastností nastavenou na zdrojovou položku. Přidání položek nabídky doprostřed nebo na začátek nabídky při aktivaci některé části programu.

Pokud je hodnota MergeIndex pro obě položky nabídky stejná, přidají se v obráceném pořadí. Nastavte MergeIndex odpovídajícím způsobem původní pořadí.
Replace Najde shodu textu nebo použije MergeIndex hodnotu, pokud se nenajde žádná shoda textu, a pak nahradí odpovídající cílovou položku nabídky položkou zdrojové nabídky. Nahrazení položky cílové nabídky položkou zdrojové nabídky se stejným názvem, která dělá něco jiného
MatchOnly Najde shodu textu nebo použije MergeIndex hodnotu, pokud se nenajde žádná shoda textu, a pak přidá všechny rozevírací položky ze zdroje do cíle. Vytvoření struktury nabídky, která vloží nebo přidá položky nabídky do podnabídky, nebo odebere položky nabídky z podnabídky. Do hlavní MenuStripnabídky Uložit jako můžete například přidat položku nabídky z podřízené položky MDI.

MatchOnly umožňuje procházet strukturu nabídek, aniž byste museli provádět žádnou akci. Poskytuje způsob, jak vyhodnotit následující položky.
Remove Najde shodu textu nebo použije MergeIndex hodnotu, pokud se nenajde žádná shoda textu, a pak položku odebere z cíle. Odebrání položky nabídky z cíle MenuStrip.

Ruční slučování

Automatické slučování se účastní jenom MenuStrip ovládací prvky. Pokud chcete zkombinovat položky jiných ovládacích prvků, jako ToolStrip jsou ovládací prvky a StatusStrip ovládací prvky, musíte je sloučit ručně voláním Merge a RevertMerge metodami v kódu podle potřeby.

Automatické slučování

Automatické slučování pro aplikace MDI můžete použít aktivací zdrojového formuláře. Chcete-li použít MenuStrip v aplikaci MDI, nastavte MainMenuStrip vlastnost na cíl MenuStrip , aby sloučení akcí provedených ve zdroji MenuStrip se projevilo v cíli MenuStrip.

Automatické sloučení můžete aktivovat aktivací MenuStrip zdroje MDI. Po aktivaci se zdroj MenuStrip sloučí do cíle MDI. Když se nový formulář aktivuje, sloučení se vrátí na poslední formulář a aktivuje se v novém formuláři. Toto chování můžete řídit nastavením MergeAction vlastnosti podle potřeby u každého ToolStripItema nastavením AllowMerge vlastnosti na každý MenuStrip.

Viz také