Unione delle voci di menu nel controllo MenuStrip Windows Form

Se si dispone di un'applicazione MDI (Multiple Document Interface), è possibile unire voci di menu o interi menu dal modulo figlio nei menu del modulo padre.

In questo argomento vengono descritti i concetti di base associati all'unione di voci di menu in un'applicazione MDI.

Concetti generali

L'unione delle procedure prevede sia una destinazione che un controllo del codice sorgente:

  • La destinazione è il MenuStrip controllo nel modulo padre principale o MDI in cui si uniscono voci di menu.

  • L'origine è il MenuStrip controllo nel modulo figlio MDI che contiene le voci di menu da unire nel menu di destinazione.

La MdiWindowListItem proprietà identifica la voce di menu il cui elenco a discesa verrà popolato con i titoli degli elementi figlio MDI del modulo padre MDI corrente. Ad esempio, si elencano in genere elementi figlio MDI attualmente aperti nel menu Finestra .

La IsMdiWindowListEntry proprietà identifica le voci di menu provenienti da un MenuStrip oggetto in un modulo figlio MDI.

È possibile unire le voci di menu manualmente o automaticamente. Le voci di menu si uniscono nello stesso modo per entrambi i metodi, ma l'unione viene attivata in modo diverso, come illustrato nelle sezioni "Unione manuale" e "Unione automatica" più avanti in questo argomento. Nell'unione manuale e automatica, ogni azione di unione influisce sull'azione di unione successiva.

MenuStrip L'unione sposta le voci di menu tra loro ToolStrip anziché clonarle, come nel caso di MainMenu.

Valori mergeAction

L'azione di unione viene impostata sulle voci di menu nell'origine MenuStrip usando la MergeAction proprietà .

La tabella seguente descrive il significato e l'uso tipico delle azioni di merge disponibili.

Valore MergeAction Descrizione Utilizzo tipico
Append (Impostazione predefinita) Aggiunge l'elemento di origine alla fine della raccolta dell'elemento di destinazione. Aggiunta di voci di menu alla fine del menu quando viene attivata una parte del programma.
Insert Aggiunge l'elemento di origine alla raccolta dell'elemento di destinazione, nella posizione specificata dalla MergeIndex proprietà impostata sull'elemento di origine. Aggiunta di voci di menu al centro o all'inizio del menu quando viene attivata una parte del programma.

Se il valore di MergeIndex è uguale per entrambe le voci di menu, vengono aggiunte in ordine inverso. Impostare MergeIndex in modo appropriato per mantenere l'ordine originale.
Replace Trova una corrispondenza di testo o usa il MergeIndex valore se non viene trovata alcuna corrispondenza di testo e quindi sostituisce la voce di menu di destinazione corrispondente con la voce di menu di origine. Sostituzione di una voce di menu di destinazione con una voce di menu di origine con lo stesso nome che esegue un'operazione diversa.
MatchOnly Trova una corrispondenza di testo o usa il MergeIndex valore se non viene trovata alcuna corrispondenza di testo e quindi aggiunge tutti gli elementi a discesa dall'origine alla destinazione. Creazione di una struttura di menu che inserisce o aggiunge voci di menu in un sottomenu o rimuove voci di menu da un sottomenu. Ad esempio, è possibile aggiungere una voce di menu da un figlio MDI a un menu principale MenuStripSalva con nome .

MatchOnly consente di spostarsi attraverso la struttura di menu senza eseguire alcuna azione. Fornisce un modo per valutare gli elementi successivi.
Remove Trova una corrispondenza di testo o usa il MergeIndex valore se non viene trovata alcuna corrispondenza di testo e quindi rimuove l'elemento dalla destinazione. Rimozione di una voce di menu dalla destinazione MenuStrip.

Unione manuale

Solo MenuStrip i controlli partecipano all'unione automatica. Per combinare gli elementi di altri controlli, ad esempio ToolStrip e StatusStrip , è necessario unirli manualmente chiamando i Merge metodi e RevertMerge nel codice in base alle esigenze.

Unione automatica

È possibile usare l'unione automatica per le applicazioni MDI attivando il modulo di origine. Per usare un MenuStrip oggetto in un'applicazione MDI, impostare la MainMenuStrip proprietà sulla destinazione MenuStrip in modo che l'unione delle azioni eseguite sull'origine MenuStrip venga riflessa nella destinazione MenuStrip.

È possibile attivare l'unione automatica attivando l'oggetto MenuStrip nell'origine MDI. Al momento dell'attivazione, l'origine MenuStrip viene unita alla destinazione MDI. Quando un nuovo modulo diventa attivo, l'unione viene ripristinata nell'ultima maschera e attivata nel nuovo modulo. È possibile controllare questo comportamento impostando la MergeAction proprietà in base alle esigenze in ogni ToolStripItemoggetto e impostando la AllowMerge proprietà su ogni MenuStripoggetto .

Vedi anche