IMenuCommandService Интерфейс

Определение

Предоставляет методы для управления общими командами конструктора и командами меню, доступными в режиме конструктора, а также методы для отображения некоторых типов контекстных меню.Provides methods to manage the global designer verbs and menu commands available in design mode, and to show some types of shortcut menus.

public interface class IMenuCommandService
[System.Runtime.InteropServices.ComVisible(true)]
public interface IMenuCommandService
type IMenuCommandService = interface
Public Interface IMenuCommandService
Производный
Атрибуты

Примеры

В этом примере демонстрируется использование IMenuCommandService для добавления MenuCommand.This example demonstrates using the IMenuCommandService to add a 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." );
      }
   };
}
[System.Security.Permissions.PermissionSet(System.Security.Permissions.SecurityAction.Demand, Name = "FullTrust")] 
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

Комментарии

Этот интерфейс предоставляет методы для:This interface provides methods to:

  • Команды поиска, вызова, добавления и удаления глобальных команд конструктора.Find, invoke, add and remove global designer verb commands.

  • Поиск, вызов, Добавление и удаление стандартных команд меню.Find, invoke, add and remove standard menu commands.

  • Изменение обработчиков событий, связанных со стандартными командами меню.Alter the event handlers associated with standard menu commands.

  • Отображение контекстного меню стандартных команд, связанных с CommandIDменю.Display a shortcut menu of standard commands that is associated with a menu CommandID.

Команды конструктора представляют определенные пользователем команды, которые перечислены в контекстном меню в режиме конструктора.Designer verbs represent custom-defined commands that are listed on the shortcut menu in design mode. Команда конструктора может предоставить указанную текстовую метку.A designer verb can provide a specified text label. Каждой команде конструктора автоматически назначается уникальный CommandID.Each designer verb is automatically assigned a unique CommandID. Конструктор может предоставлять команды конструктора через свойство Verbs, но они доступны только в том случае, если в данный момент выбран компонент конструктора.A designer can provide designer verbs through its Verbs property, but these are only available when the designer's component is currently selected. Глобальные команды конструктора — это команды команд конструктора, доступ к которым можно получить из контекстного меню режима разработки независимо от выбранного компонента.Global designer verbs are designer verb commands that can be accessed from a design-mode shortcut menu regardless of the selected component. Этот интерфейс позволяет управлять набором глобальных команд конструктора, доступных в режиме конструктора.This interface allows you to manage the set of global designer verbs that are available in design mode.

Можно добавить глобальную команду конструктора с помощью метода AddVerb, а также можно удалить глобальную команду конструктора с помощью метода RemoveVerb.You can add a global designer verb using the AddVerb method, and you can remove a global designer verb using the RemoveVerb method. Можно вызвать команду конструктора с помощью метода GlobalInvoke, если известно CommandID команды.You can invoke a designer verb using the GlobalInvoke method if you know the CommandID of the verb. Свойство Verbs этого интерфейса содержит текущий набор команд конструктора, отображаемых в контекстном меню.The Verbs property of this interface contains the current set of designer verb commands to display in a shortcut menu. Этот набор команд конструктора состоит из всех глобальных команд конструктора и команд конструктора, предлагаемых конструктором любого выбранного компонента.This set of designer verb commands consists of all global designer verbs and any designer verbs offered by the designer of any currently selected component. Этот набор команд обновляется каждый раз при выборе или отключении компонента с командами конструктора с предложением конструктора.This set of verbs is updated each time a component with a designer offering designer verb commands is selected or deselected.

Команды меню ограничены набором предопределенных стандартных команд.Menu commands are limited to the set of predefined standard commands. Большинство предопределенных стандартных команд определяются в перечислениях StandardCommands и MenuCommands.Most of the predefined standard commands are defined in the StandardCommands and MenuCommands enumerations. Можно добавлять, удалять и вызывать команды меню, а также выполнять поиск команд меню, добавленных в меню с помощью методов этого интерфейса.You can add, remove, and invoke menu commands, and search for menu commands that have been added to a menu using methods of this interface.

Вы можете добавить стандартную команду меню с помощью метода AddCommand и удалить стандартную команду меню с помощью метода RemoveCommand.You can add a standard menu command using the AddCommand method, and remove a standard menu command using the RemoveCommand method. Обработчик событий можно подключить к предопределенной команде стандартного меню, выполнив процедуру, описанную в документации по методу AddCommand.You can attach an event handler to a predefined standard menu command by following the procedure detailed in the documentation for the AddCommand method. Команду меню можно получить, CommandID если она была добавлена в меню с помощью метода FindCommand.You can retrieve a menu command by CommandID if it has been added to a menu using the FindCommand method. Команду меню или команду конструктора можно вызвать, CommandID помощью метода GlobalInvoke.You can invoke a menu command or designer verb command by CommandID using the GlobalInvoke method.

Примечание

Попытка добавить команду меню с уже существующим CommandID приведет к созданию InvalidOperationException.An attempt to add a menu command with an already existing CommandID will throw an InvalidOperationException. При добавлении команды меню убедитесь, что она еще не находится в меню, использующем метод FindCommand, или используйте обработку исключений в разумном виде.When adding a menu command, be sure to check that it is not already on a menu using the FindCommand method, or use exception handling wisely.

Примечание

Команду меню можно добавить в меню и задать для свойств Visible или Enabled значение false.A menu command can be added to a menu, and have its Visible or Enabled properties set to false. Если не удается визуально определить команду меню, которая была добавлена в меню, то одно из этих свойств могло быть установлено в false.If you cannot visually locate a menu command that has been added on a menu, one of these properties may have been set to false.

С помощью метода ShowContextMenu можно отобразить определенные стандартные контекстные меню, содержащие команды меню в указанном расположении.You can show certain standard shortcut menus containing menu commands at a specified location using the ShowContextMenu method. Документация по этому методу содержит таблицу, в которой перечислены идентификаторы команд, указывающие допустимые меню для отображения.The documentation for this method contains a table listing the command IDs that specify the valid menus to show.

Свойства

Verbs

Возвращает коллекцию команд конструктора, доступных в настоящий момент.Gets a collection of the designer verbs that are currently available.

Методы

AddCommand(MenuCommand)

Добавляет в меню указанную стандартную команду меню.Adds the specified standard menu command to the menu.

AddVerb(DesignerVerb)

Добавляет указанную команду конструктора в набор общих команд конструктора.Adds the specified designer verb to the set of global designer verbs.

FindCommand(CommandID)

Осуществляет поиск указанного идентификатора команды и возвращает связанную с ним команду меню.Searches for the specified command ID and returns the menu command associated with it.

GlobalInvoke(CommandID)

Вызывает команду меню или команду конструктора, соответствующую указанному идентификатору команды.Invokes a menu or designer verb command matching the specified command ID.

RemoveCommand(MenuCommand)

Удаляет из меню указанную стандартную команду меню.Removes the specified standard menu command from the menu.

RemoveVerb(DesignerVerb)

Удаляет указанную команду конструктора из коллекции глобальных команд конструктора.Removes the specified designer verb from the collection of global designer verbs.

ShowContextMenu(CommandID, Int32, Int32)

Отображает указанное контекстное меню в заданном месте.Shows the specified shortcut menu at the specified location.

Применяется к

Дополнительно