Unione delle voci del menu nel controllo MenuStrip di Windows Forms
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 controllo MenuStrip nel modulo padre principale o MDI in cui stai unendo le voci di menu.
La sorgente è il controllo MenuStrip nel modulo figlio MDI che contiene le voci di menu da unire nel menu di destinazione.
La proprietà MdiWindowListItem 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 gli elementi figli MDI attualmente aperti nel menu Finestra di .
La proprietà IsMdiWindowListEntry identifica le voci di menu provenienti da un MenuStrip 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 da un ToolStrip a un'altra anziché clonarle, come nel caso di MainMenu.
Valori MergeAction
Imposti l'azione di unione sulle voci di menu nel MenuStrip di origine usando la proprietà MergeAction.
La tabella seguente descrive il significato e l'uso tipico delle azioni di merge disponibili.
Valore di MergeAction | Descrizione | Uso 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 proprietà MergeIndex impostata sull'elemento di origine. | Aggiunta di voci di menu al centro o all'inizio del menu quando viene attivata una sezione del programma. Se il valore di MergeIndex è lo stesso 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 oppure usa il valore MergeIndex 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 valore MergeIndex 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 MenuStripmenu salva con nome principale. MatchOnly consente di spostarsi nella struttura di menu senza eseguire alcuna azione. Fornisce un modo per valutare gli elementi successivi. |
Remove | Trova una corrispondenza di testo oppure usa il valore MergeIndex se non viene trovata alcuna corrispondenza di testo e quindi rimuove l'elemento dalla destinazione. | La rimozione di un elemento dal menu di destinazione MenuStrip. |
Fusione manuale
Solo i controlli MenuStrip partecipano all'unione automatica. Per combinare gli elementi di altri controlli, ad esempio ToolStrip e StatusStrip controlli, è necessario unirli manualmente chiamando i metodi Merge 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 in un'applicazione MDI, impostare la proprietà MainMenuStrip sul MenuStrip di destinazione in modo che le azioni di unione eseguite sul MenuStrip di origine siano rispecchiate nel MenuStripdi destinazione.
È possibile attivare l'unione automatica attivando il MenuStrip nell'origine MDI. Al momento dell'attivazione, il MenuStrip di origine viene unito alla destinazione MDI. Quando un nuovo modulo diventa attivo, l'unione viene ripristinata sull'ultimo modulo e attivata sul nuovo modulo. È possibile controllare questo comportamento impostando la proprietà MergeAction in base alle esigenze in ogni ToolStripIteme impostando la proprietà AllowMerge su ogni MenuStrip.
Vedere anche
.NET Desktop feedback