共用方式為


How to: 變更命令的外觀

您可以變更外觀的命令,您的使用者提供意見反應。 例如,您可能想的命令無法使用時看起來一樣。 您可以讓命令可以使用或無法使用、 隱藏或顯示它們,或檢查或那些項目在功能表上。

若要變更外觀的命令,執行下列其中一個動作:

下列步驟顯示如何尋找並使用管理套件架構 (MPF) 更新命令的外觀。

若要變更功能表命令的外觀

  1. 請依照How to: 變更功能表命令的文字來建立功能表項目名稱為新的文字。

  2. VSPackage 原始程式檔中命名,例如,MenuTextPackage.cs,加入下列幾行結尾的MenuItemCallback方法。

    var command = sender as OleMenuCommand;
    if (command.Text == "New Text") EnableMyCommand(command.CommandID.ID, false);
    
  3. 取得您想要從更新的命令OleMenuCommandService物件,然後在命令物件設定適當的屬性。 例如,下列方法會使指定的指令從 [VSPackage] 指令設定可用或無法使用。

    <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;
    }
    

    這會使功能表項目名稱為新的文字已按下之後,將無法使用。

請參閱

概念

VSPackages 對 IDE 所新增的使用者介面項目

其他資源

命令、 功能表和工具列

一般工作的命令、 功能表和工具列

Visual Studio 命令表裡 (。Vsct) 檔案