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