IMenuCommandService Интерфейс
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Предоставляет методы для управления общими командами конструктора и командами меню, доступными в режиме конструктора, а также методы для отображения некоторых типов контекстных меню.
public interface class IMenuCommandService
public interface IMenuCommandService
[System.Runtime.InteropServices.ComVisible(true)]
public interface IMenuCommandService
type IMenuCommandService = interface
[<System.Runtime.InteropServices.ComVisible(true)>]
type IMenuCommandService = interface
Public Interface IMenuCommandService
- Производный
- Атрибуты
Примеры
В этом примере демонстрируется использование IMenuCommandService для добавления MenuCommand.
public ref class CDesigner: public ComponentDesigner
{
public:
[PermissionSetAttribute(SecurityAction::Demand, Name="FullTrust")]
virtual void Initialize( IComponent^ comp ) override
{
ComponentDesigner::Initialize( comp );
IMenuCommandService^ mcs = static_cast<IMenuCommandService^>(comp->Site->GetService( IMenuCommandService::typeid ));
MenuCommand^ mc = gcnew MenuCommand( gcnew EventHandler( this, &CDesigner::OnF1Help ),StandardCommands::F1Help );
mc->Enabled = true;
mc->Visible = true;
mc->Supported = true;
mcs->AddCommand( mc );
System::Windows::Forms::MessageBox::Show( "Initialize() has been invoked." );
}
private:
void OnF1Help( Object^ /*sender*/, EventArgs^ /*e*/ )
{
System::Windows::Forms::MessageBox::Show( "F1Help has been invoked." );
}
};
}
public class CDesigner : System.ComponentModel.Design.ComponentDesigner
{
public override void Initialize(IComponent comp)
{
base.Initialize(comp);
IMenuCommandService mcs = (IMenuCommandService)comp.Site.
GetService(typeof(IMenuCommandService));
MenuCommand mc = new MenuCommand(new EventHandler(OnF1Help), StandardCommands.F1Help);
mc.Enabled = true;
mc.Visible = true;
mc.Supported = true;
mcs.AddCommand(mc);
System.Windows.Forms.MessageBox.Show("Initialize() has been invoked.");
}
private void OnF1Help(object sender, EventArgs e)
{
System.Windows.Forms.MessageBox.Show("F1Help has been invoked.");
}
}
<System.Security.Permissions.PermissionSetAttribute(System.Security.Permissions.SecurityAction.Demand, Name:="FullTrust")> _
Public Class CDesigner
Inherits System.ComponentModel.Design.ComponentDesigner
Public Overrides Sub Initialize(ByVal comp As IComponent)
MyBase.Initialize(comp)
Dim mcs As IMenuCommandService = CType(comp.Site.GetService(GetType(IMenuCommandService)), IMenuCommandService)
Dim mc As New MenuCommand(New EventHandler(AddressOf OnF1Help), StandardCommands.F1Help)
mc.Enabled = True
mc.Visible = True
mc.Supported = True
mcs.AddCommand(mc)
System.Windows.Forms.MessageBox.Show("Initialize() has been invoked.")
End Sub
Private Sub OnF1Help(ByVal sender As Object, ByVal e As EventArgs)
System.Windows.Forms.MessageBox.Show("F1Help has been invoked.")
End Sub
End Class
Комментарии
Этот интерфейс предоставляет методы для:
Поиск, вызов, добавление и удаление глобальных команд команд конструктора.
Поиск, вызов, добавление и удаление стандартных команд меню.
Измените обработчики событий, связанные со стандартными командами меню.
Отображение контекстного меню стандартных команд, связанных с меню CommandID.
Designer глаголы представляют пользовательские команды, перечисленные в контекстном меню в режиме конструктора. Команда конструктора может предоставить указанную текстовую метку. Каждой команде конструктора автоматически назначается уникальный CommandID. Конструктор может предоставлять команды конструктора через свое Verbs свойство, но они доступны только в том случае, если компонент конструктора в данный момент выбран. Команды глобального конструктора — это команды команд конструктора, доступ к которым можно получить из контекстного меню режима разработки независимо от выбранного компонента. Этот интерфейс позволяет управлять набором глобальных команд конструктора, доступных в режиме конструктора.
Вы можете добавить глобальную команду конструктора AddVerb с помощью метода и удалить команду глобального конструктора RemoveVerb с помощью метода . Команду конструктора можно вызвать с помощью метода , GlobalInvoke если вы знаете CommandID команду . Свойство Verbs этого интерфейса содержит текущий набор команд команд конструктора для отображения в контекстном меню. Этот набор команд команд конструктора состоит из всех глобальных команд конструктора и команд конструктора, предлагаемых конструктором любого выбранного компонента. Этот набор команд обновляется каждый раз, когда компонент с конструктором, предлагающим команды команд команд конструктора, выбирается или отменяется.
Команды меню ограничены набором стандартных стандартных команд. Большинство предопределенных стандартных команд определяются в перечислениях StandardCommands и MenuCommands . Вы можете добавлять, удалять и вызывать команды меню, а также искать команды меню, добавленные в меню, с помощью методов этого интерфейса.
Вы можете добавить стандартную команду меню с помощью AddCommand метода и удалить стандартную команду меню с помощью RemoveCommand метода . Обработчик событий можно подключить к предопределенной стандартной команде меню, выполнив процедуру, описанную в документации по методу AddCommand . Команду меню можно получить, CommandID если она была добавлена в меню с помощью FindCommand метода . Команду меню или команду команд конструктора можно вызвать с помощью CommandIDGlobalInvoke метода .
Примечание
При попытке добавить команду меню с уже существующим CommandID вызывается InvalidOperationExceptionисключение . При добавлении команды меню обязательно проверка, что она еще не находится в меню с помощью FindCommand метода , или используйте обработку исключений с умом.
Примечание
Команду меню можно добавить в меню, а ее Visible свойствам или Enabled присвоено значение false
. Если вы не можете визуально найти команду меню, которая была добавлена в меню, то для одного из этих свойств может быть задано значение false
.
Некоторые стандартные контекстные меню, содержащие команды меню, можно отобразить в указанном расположении ShowContextMenu с помощью метода . Документация по этому методу содержит таблицу с идентификаторами команд, которые указывают допустимые меню для отображения.
Свойства
Verbs |
Возвращает коллекцию команд конструктора, доступных в настоящий момент. |
Методы
AddCommand(MenuCommand) |
Добавляет в меню указанную стандартную команду меню. |
AddVerb(DesignerVerb) |
Добавляет указанную команду конструктора в набор общих команд конструктора. |
FindCommand(CommandID) |
Осуществляет поиск указанного идентификатора команды и возвращает связанную с ним команду меню. |
GlobalInvoke(CommandID) |
Вызывает команду меню или команду конструктора, соответствующую указанному идентификатору команды. |
RemoveCommand(MenuCommand) |
Удаляет из меню указанную стандартную команду меню. |
RemoveVerb(DesignerVerb) |
Удаляет указанную команду конструктора из коллекции глобальных команд конструктора. |
ShowContextMenu(CommandID, Int32, Int32) |
Отображает указанное контекстное меню в заданном месте. |