Condividi tramite


Unione delle voci di menu nel controllo MenuStrip Windows Form

Se si dispone di un'applicazione con interfaccia a documenti multipli (MDI), è possibile unire voci di menu o interi menu del form figlio nei menu del form padre.

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

Concetti generali

Le procedure di unione coinvolgono un controllo di destinazione e un controllo di origine:

  • La destinazione è il controllo MenuStrip sul form padre principale o MDI in cui vengono unite le voci di menu.

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

La proprietà MdiWindowListItem identifica la voce di menu nel cui elenco a discesa verranno inseriti i titoli dei figlio MDI del form padre MDI corrente. Ad esempio, in genere vengono elencati i form figlio MDI che sono attualmente aperti nel menu Finestra.

La proprietà IsMdiWindowListEntry identifica quali voci di menu provengono da un controllo MenuStrip in un form figlio MDI.

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

L'unione con MenuStrip sposta le voci di menu da un controllo ToolStrip a un altro anziché duplicarle, come avviene invece con MainMenu.

Valori di MergeAction

Per impostare l'azione di unione nelle voci di menu nel controllo MenuStrip di origine, utilizzare la proprietà MergeAction.

Nella tabella seguente vengono descritti il significato e l'utilizzo tipico delle azioni di unione disponibili.

Valore di MergeAction

Descrizione

Utilizzo tipico

Append

(Impostazione predefinita) Aggiunge l'elemento di origine alla fine dell'insieme dell'elemento di destinazione.

Aggiunta di voci di menu alla fine del menu quando parte del programma viene attivata.

Insert

Aggiunge l'elemento di origine all'insieme dell'elemento di destinazione, nella posizione specificata dalla proprietà MergeIndex impostata nell'elemento di origine.

Aggiunta di voci di menu al centro o all'inizio del menu quando parte del programma viene attivata.

Se il valore di MergeIndex è uguale per entrambe le voci di menu, vengono aggiunte in ordine inverso. Impostare la proprietà MergeIndex in modo appropriato per mantenere l'ordine originale.

Replace

Cerca una corrispondenza di testo o, se non la trova, utilizza il valore MergeIndex 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 ha una funzione diversa.

MatchOnly

Cerca una corrispondenza di testo o, se non la trova, utilizza il valore MergeIndex e quindi aggiunge tutti gli elementi a discesa dell'origine nella destinazione.

Compilazione 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 Salva con nome del controllo MenuStrip principale.

MatchOnly consente di spostarsi nella struttura di menu senza eseguire alcuna azione. Fornisce un modo per valutare gli elementi successivi.

Remove

Cerca una corrispondenza di testo o, se non la trova, utilizza il valore MergeIndex e quindi rimuove l'elemento dalla destinazione.

Rimozione di una voce di menu dal controllo MenuStrip di destinazione.

Unione manuale

Solo i controlli MenuStrip partecipano all'unione manuale. Per combinare gli elementi di altri controlli, ad esempio ToolStrip e StatusStrip, è necessario unirli manualmente, eseguendo una chiamata ai metodi Merge e RevertMerge nel codice secondo necessità.

Unione automatica

È possibile utilizzare l'unione automatica per le applicazioni MDI attivando il form di origine. Per utilizzare un controllo MenuStrip in un'applicazione MDI, impostare la proprietà MainMenuStrip sul controllo MenuStrip di destinazione in modo che le azioni di unione eseguite sul controllo MenuStrip di origine si riflettano nel controllo MenuStrip di destinazione.

È possibile generare l'unione automatica attivando il controllo MenuStrip sull'origine MDI. Dopo l'attivazione, il controllo MenuStrip di origine viene unito nella destinazione MDI. Quando un nuovo form diventa attivo, l'unione viene annullata sull'ultimo form e generata sul nuovo form. È possibile controllare questo comportamento impostando la proprietà MergeAction secondo necessità in ogni controllo ToolStripItem e impostando la proprietà AllowMerge in ogni controllo MenuStrip.

Vedere anche

Attività

Procedura: creare un elenco di finestre MDI con MenuStrip (Windows Form)

Procedura: impostare l'unione automatica dei menu per applicazioni MDI

Riferimenti

ToolStripManager

MenuStrip

Altre risorse

Controllo MenuStrip (Windows Form)