Поделиться через


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)

Отображает указанное контекстное меню в заданном месте.

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

См. также раздел