ModelExplorerTreeContainer.AddCommandHandlers 方法
提供方法來尋找、 叫用時,並從快顯功能表中移除功能表命令。
命名空間: Microsoft.VisualStudio.Modeling.Shell
組件: Microsoft.VisualStudio.Modeling.Sdk.Shell.11.0 (在 Microsoft.VisualStudio.Modeling.Sdk.Shell.11.0.dll 中)
語法
'宣告
Public Overridable Sub AddCommandHandlers ( _
menuCommandService As IMenuCommandService _
)
public virtual void AddCommandHandlers(
IMenuCommandService menuCommandService
)
參數
- menuCommandService
型別:System.ComponentModel.Design.IMenuCommandService
IMenuCommandService 與指令一起使用的介面。
備註
這個方法會叫用ISelectionService介面。
未登錄處理常式時,才基底類別實作會將命令處理常式。 這可讓衍生的類別覆寫每個命令的處理。 因此,衍生的類別應該新增命令,它們是在呼叫基底類別。
範例
本範例在快顯功能表中新增自訂命令。 當使用者建置的方案中產生的設計工具,並以滑鼠右鍵按一下圖表,也就是一個額外的命令, 的範例命令,會出現在快顯功能表。
在 Commands.vsct 檔案中下, 面這一行會出現在包含陳述式之後。
#define cmdidMyMenuSample 0x0008
在 Commands.vsct 檔案中,在 GENERATED_BUTTONS 之後會出現下面這一行。
guidCmdSet:cmdidMyMenuSampe, guidCommonModelingMenu:grpidExplorerMenuGroup, 0x8020, OI_NOID, BUTTON, DIS_DEF, "&Sample Command";
在 [VsctComponents] 資料夾中,下列的.cs 檔使用。命名空間和幾種方法具有專案名稱,MenuSample,在其中。
using DslModeling = global::Microsoft.VisualStudio.Modeling;
using DslShell = global::Microsoft.VisualStudio.Modeling.Shell;
using DslDiagrams = global::Microsoft.VisualStudio.Modeling.Diagrams;
using System;
using System.ComponentModel.Design;
using System.Windows.Forms;
namespace MS.MenuSample
{
internal partial class MenuSampleExplorer
{
public override void AddCommandHandlers(System.ComponentModel.Design.IMenuCommandService menuCommandService)
{
menuCommandService.AddCommand(new DslShell::DynamicStatusMenuCommand(
new EventHandler(OnStatusMyMenuSample),
new EventHandler(OnMenuMyMenuSample),
Constants.MyMenuSampleCommand));
base.AddCommandHandlers(menuCommandService);
}
private void OnStatusMyMenuSample(object sender, EventArgs e)
{
System.ComponentModel.Design.MenuCommand cmd = sender as System.ComponentModel.Design.MenuCommand;
cmd.Enabled = cmd.Visible = true;
}
private void OnMenuMyMenuSample(object sender, EventArgs e)
{
MessageBox.Show("Place for you to act when user chooses this menu item");
}
}
internal static partial class Constants
{
private const int cmdidMyMenuSample = 0x0008;
public static readonly CommandID MyMenuSampleCommand = new CommandID(new Guid(MenuSampleCommandSetId), Constants.cmdidMyMenuSample);
}
}
.NET Framework 安全性
- 完全信任立即呼叫者。這個成員無法供部分信任的程式碼使用。如需詳細資訊,請參閱從部分受信任程式碼使用程式庫。