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, следующая линия появляется после выписок include.
#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
- Полное доверие для непосредственно вызывающего метода. Этот член не может быть использован частично доверенным кодом. Дополнительные сведения см. в разделе Использование библиотек из не вполне надежного кода.