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 詳述的程式,將事件處理程式附加至預先定義的標準功能表命令。 如果使用 方法將其新增至功能表,您可以擷 CommandID 取功能表 FindCommand 命令。 您可以使用 方法叫用GlobalInvoke功能表命令或設計工具動詞命令CommandID

注意

試著新增具有現有 CommandID 的選單命令會擲回 InvalidOperationException。 新增功能表命令時,請務必檢查它尚未使用 FindCommand 方法在功能表上,或以明智的方式使用例外狀況處理。

注意

選單命令可以新增至選單,並將其 VisibleEnabled 屬性設定為 false。 如果您無法以視覺化方式找到已在選單新增的選單命令,則其中一個屬性可能已設定為 false

您可以使用 方法,在指定的位置 ShowContextMenu 顯示包含功能表命令的特定標準快捷功能表。 這個方法的檔包含一個數據表,其中列出指定要顯示之有效功能表的命令標識元。

屬性

Verbs

取得目前可用的設計工具動詞命令集合。

方法

AddCommand(MenuCommand)

將指定的標準功能表命令加入至功能表。

AddVerb(DesignerVerb)

加入指定的設計工具動詞命令至全域設計工具動詞命令集。

FindCommand(CommandID)

搜尋指定的命令 ID,並傳回與它相關聯的功能表命令。

GlobalInvoke(CommandID)

叫用功能表或與指定之命令 ID 相符的設計工具動詞命令。

RemoveCommand(MenuCommand)

從功能表移除指定的標準功能表命令。

RemoveVerb(DesignerVerb)

從全域設計工具動詞命令的集合移除指定的設計工具動詞命令。

ShowContextMenu(CommandID, Int32, Int32)

在指定位置顯示指定的捷徑功能表。

適用於

另請參閱