ModelExplorerTreeContainer.AddCommandHandlers 方法
提供方法,從捷徑功能表中尋找、叫用及移除功能表命令。
命名空間: Microsoft.VisualStudio.Modeling.Shell
組件: Microsoft.VisualStudio.Modeling.Sdk.Shell.12.0 (在 Microsoft.VisualStudio.Modeling.Sdk.Shell.12.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 安全性
- 完全信任立即呼叫者。這個成員無法供部分信任的程式碼使用。如需詳細資訊,請參閱從部分受信任程式碼使用程式庫。