Procedura: modificare l'aspetto di un comando
È possibile fornire informazioni all'utente modificandone l'aspetto di un comando. Ad esempio, è necessario un comando apparire diverso quando non sono disponibili. È possibile rendere i controlli disponibili o non disponibili, li nascosto o visualizzarli, o vengono archiviate o deselezionato scegliere dal menu.
Per modificare l'aspetto di un comando, eseguire una di queste azioni:
Specificare i flag appropriati nella definizione di comando nel file di tabella dei comandi.
utilizzare il servizio di OleMenuCommandService .
Implementare l'interfaccia di IOleCommandTarget e modificare oggetti command non elaborati.
Nei passaggi seguenti viene illustrato come trovare e aggiornare l'aspetto di un comando tramite il pacchetto gestito Framework (MPF).
Per modificare l'aspetto di un comando di menu
Seguire le istruzioni in Procedura: Per modificare il testo di un comando di menu creare una voce di menu denominata nuovo testo.
Nel file di origine di un VSPackage denominato, ad esempio, MenuTextPackage.cs, aggiungere le righe seguenti alla fine del metodo di MenuItemCallback .
var command = sender as OleMenuCommand; if (command.Text == "New Text") EnableMyCommand(command.CommandID.ID, false);
Ottenere il comando che si desidera aggiornare dall'oggetto di OleMenuCommandService quindi impostare le proprietà appropriate sull'oggetto comando. Ad esempio, il seguente metodo conferisce il comando specificato da un VSPackage a ordinare disponibile o non disponibile impostato.
<PrincipalPermission(SecurityAction.Demand)> _ Public Function EnableMyCommand(ByVal cmdID As Integer, ByVal fEnableCmd As Boolean) As Boolean Dim fCmdUpdated As Boolean = False Dim mcs As OleMenuCommandService = TryCast(Me.GetService(GetType(IMenuCommandService)), OleMenuCommandService) Dim newCmdID As CommandID = New CommandID(GuidList.guidMenuTextCmdSet, cmdID) Dim mc As MenuCommand = mcs.FindCommand(newCmdID) If mc IsNot Nothing Then mc.Enabled = fEnableCmd fCmdUpdated = True End If Return fCmdUpdated End Function
[PrincipalPermission(SecurityAction.Demand)] public bool EnableMyCommand(int cmdID, bool fEnableCmd) { bool fCmdUpdated = false; var mcs = this.GetService(typeof(IMenuCommandService)) as OleMenuCommandService; var newCmdID = new CommandID(GuidList.guidMenuTextCmdSet, cmdID); MenuCommand mc = mcs.FindCommand(newCmdID); if (mc != null) { mc.Enabled = fEnableCmd; fCmdUpdated = true; } return fCmdUpdated; }
In questo modo la voce di menu denominata nuovo testo non disponibile dopo che è stato fatto clic.
Vedere anche
Concetti
Come Vspackage aggiunge gli elementi dell'interfaccia utente dell'IDE
Altre risorse
Controlli, menu e barre degli strumenti
Attività comuni con i controlli, i menu e le barre degli strumenti