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 。 如果您知道谓词的 ,CommandID则可以使用 GlobalInvoke 方法调用设计器谓词。 Verbs此接口的 属性包含要在快捷菜单中显示的当前设计器谓词命令集。 这组设计器谓词命令由所有全局设计器谓词和任何当前所选组件的设计器提供的任何设计器谓词组成。 每次选择或取消选择具有设计器提供设计器谓词命令的组件时,都会更新这组谓词。

菜单命令仅限于预定义的标准命令集。 大多数预定义的标准命令在 和 MenuCommands 枚举中StandardCommands定义。 可以使用此接口的方法添加、删除和调用菜单命令,并搜索已添加到菜单中的菜单命令。

可以使用 方法添加标准菜单命令 AddCommand ,并使用 方法删除标准菜单命令 RemoveCommand 。 可以按照 方法文档中 AddCommand 详述的过程,将事件处理程序附加到预定义的标准菜单命令。 如果已使用 FindCommand 方法将菜单命令添加到菜单中,则可以检索该菜单命令CommandID。 可以使用 方法调用菜单命令或设计器谓词命令CommandIDGlobalInvoke

注意

尝试添加具有 已存在的 CommandID 菜单命令将引发 InvalidOperationException。 添加菜单命令时,请确保使用 方法检查该命令尚未位于菜单上FindCommand,或明智地使用异常处理。

注意

菜单命令可以添加到菜单中,并将其 VisibleEnabled 属性设置为 false。 如果无法直观地找到已在菜单上添加的菜单命令,则其中一个属性可能已设置为 false

可以使用 方法在指定位置 ShowContextMenu 显示包含菜单命令的某些标准快捷菜单。 此方法的文档包含一个表,其中列出了指定要显示的有效菜单的命令 ID。

属性

Verbs

获取当前可用的设计器谓词的集合。

方法

AddCommand(MenuCommand)

将指定的标准菜单命令添加到菜单中。

AddVerb(DesignerVerb)

将指定的设计器谓词添加到全局设计器谓词集中。

FindCommand(CommandID)

搜索指定的命令 ID 并返回与之关联的菜单命令。

GlobalInvoke(CommandID)

调用与指定的命令 ID 匹配的菜单或设计器谓词命令。

RemoveCommand(MenuCommand)

从菜单移除指定的标准菜单命令。

RemoveVerb(DesignerVerb)

从全局设计器谓词的集合中移除指定的设计器谓词。

ShowContextMenu(CommandID, Int32, Int32)

在指定位置显示指定的快捷菜单。

适用于

另请参阅