變更外觀的命令
如需 Visual Studio 2017 RC 的最新文件請參閱 Visual Studio 2017 RC 文件。
您可以變更外觀的命令,以您的使用者提供意見反應。 例如,您可以看起來不同,無法使用時的命令。 您可以使用或無法使用,讓命令、 隱藏或顯示它們,或檢查或功能表中的那些項目。
若要變更命令的外觀,執行下列其中一個動作︰
指定命令檔中定義命令資料表中的適當旗標。
實作IOleCommandTarget介面,並修改原始的命令物件。
下列步驟顯示如何尋找及使用管理套件架構 (MPF) 來更新命令的外觀。
若要變更功能表命令的外觀
依照變更功能表命令的文字建立功能表項目,名為
New Text
。在 ChangeMenuText.cs 檔案中,新增下列 using 陳述式︰
using System.Security.Permissions;
在 ChangeMenuTextPackageGuids.cs 檔案中,加入下列這一行︰
public const string guidChangeMenuTextPackageCmdSet= "00000000-0000-0000-0000-00000000"; // get the GUID from the .vsct file
在 ChangeMenuText.cs 檔案中,請以下列取代 ShowMessageBox 方法中的程式碼︰
private void ShowMessageBox(object sender, EventArgs e) { var command = sender as OleMenuCommand; if (command.Text == "New Text") ChangeMyCommand(command.CommandID.ID, false);} }
取得您想要從更新的命令OleMenuCommandService物件,然後在命令物件上設定適當的屬性。 例如,下列方法會讓您指定的命令從 VSPackage 命令設定可用或無法使用。 下列程式碼所做的功能表項目名為
New Text
已按下之後無法使用。public bool ChangeMyCommand(int cmdID, bool enableCmd) { bool cmdUpdated = false; var mcs = this.ServiceProvider.GetService(typeof(IMenuCommandService)) as OleMenuCommandService; var newCmdID = new CommandID(new Guid(ChangeMenuTextPackageGuids.guidChangeMenuTextPackageCmdSet), cmdID); MenuCommand mc = mcs.FindCommand(newCmdID); if (mc != null) { mc.Enabled = enableCmd; cmdUpdated = true; } return cmdUpdated; } }
建置此專案並開始偵錯。 Visual Studio 的實驗執行個體應該會出現。
在工具] 功能表上,按一下 [叫用 ChangeMenuText命令。 命令名稱現在是叫用 ChangeMenuText,因此命令處理常式並不會呼叫 ChangeMyCommand()。
在工具] 功能表上,您現在應該會看到新文字。 按一下 [新文字。 此命令應該現在會變成灰色。
另請參閱
命令、 功能表和工具列
VSPackages 如何新增使用者介面項目
擴充的功能表和命令
Visual Studio 命令資料表 (。Vsct) 檔案