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.
Команды конструктора представляют пользовательские команды, перечисленные в контекстном меню в режиме конструктора. Команда конструктора может предоставить указанную текстовую метку. Каждая команда конструктора автоматически назначается уникальной CommandID. Конструктор может предоставлять команды конструктора через его Verbs свойство, но они доступны только при выборе компонента конструктора. Команды глобального конструктора — это команды команд конструктора, к которым можно получить доступ из контекстного меню режима конструктора независимо от выбранного компонента. Этот интерфейс позволяет управлять набором команд глобального конструктора, доступных в режиме конструктора.
Вы можете добавить команду глобального конструктора AddVerb с помощью метода, и удалить команду глобального конструктора RemoveVerb можно с помощью метода. Вы можете вызвать команду конструктора GlobalInvoke с помощью метода, если известно о CommandID команде. Свойство Verbs этого интерфейса содержит текущий набор команд команд конструктора для отображения в контекстном меню. Этот набор команд команд конструктора состоит из всех глобальных команд конструктора и всех команд конструктора, предлагаемых конструктором любого выбранного компонента. Этот набор команд обновляется каждый раз, когда компонент с конструктором, предлагающим команды команд конструктора, выбирается или удаляется.
Команды меню ограничены набором стандартных команд. Большинство стандартных команд определяются в StandardCommands перечислениях.MenuCommands Вы можете добавлять, удалять и вызывать команды меню, а также выполнять поиск команд меню, которые были добавлены в меню с помощью методов этого интерфейса.
Вы можете добавить команду стандартного AddCommand меню с помощью метода и удалить стандартную команду меню с помощью RemoveCommand метода. Обработчик событий можно подключить к предопределенной стандартной команде меню, следуя процедуре, описанной в документации по методу AddCommand . Команду меню можно получить, CommandID если она была добавлена в меню с помощью FindCommand метода. С помощью CommandID метода можно вызвать команду меню или команду команды конструктора GlobalInvoke .
Примечание
Попытка добавить команду меню с уже существующей CommandID вызовет InvalidOperationExceptionисключение . При добавлении команды меню убедитесь, что она еще не находится в меню с помощью FindCommand метода, или используйте обработку исключений разумно.
Примечание
Команду меню можно добавить в меню и присвоить false
ей Visible или Enabled свойства. Если визуально не удается найти команду меню, добавленную в меню, может быть задано false
одно из этих свойств.
С помощью метода можно отобразить определенные стандартные контекстные меню, содержащие команды меню в указанном расположении ShowContextMenu . Документация по этому методу содержит таблицу с идентификаторами команд, которые указывают допустимые меню для отображения.
Свойства
Verbs |
Возвращает коллекцию команд конструктора, доступных в настоящий момент. |
Методы
AddCommand(MenuCommand) |
Добавляет в меню указанную стандартную команду меню. |
AddVerb(DesignerVerb) |
Добавляет указанную команду конструктора в набор общих команд конструктора. |
FindCommand(CommandID) |
Осуществляет поиск указанного идентификатора команды и возвращает связанную с ним команду меню. |
GlobalInvoke(CommandID) |
Вызывает команду меню или команду конструктора, соответствующую указанному идентификатору команды. |
RemoveCommand(MenuCommand) |
Удаляет из меню указанную стандартную команду меню. |
RemoveVerb(DesignerVerb) |
Удаляет указанную команду конструктора из коллекции глобальных команд конструктора. |
ShowContextMenu(CommandID, Int32, Int32) |
Отображает указанное контекстное меню в заданном месте. |