다음을 통해 공유


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 검색할 수 있습니다. 메서드를 사용하여 메뉴 명령 또는 디자이너 동사 명령을 CommandID 호출할 GlobalInvoke 수 있습니다.

참고

이미 존재하는 CommandID 메뉴 명령을 추가하려고 하면 가 InvalidOperationExceptionthrow됩니다. 메뉴 명령을 추가할 때 메서드를 사용하여 FindCommand 메뉴에 아직 없는지 검사 예외 처리를 현명하게 사용해야 합니다.

참고

메뉴 명령을 메뉴에 추가하고 해당 Visible 또는 Enabled 속성을 로 설정할 false수 있습니다. 메뉴에 추가된 메뉴 명령을 시각적으로 찾을 수 없는 경우 이러한 속성 중 하나가 로 설정 false되었을 수 있습니다.

메서드를 사용하여 지정된 위치에 메뉴 명령이 포함된 특정 표준 바로 가기 메뉴를 표시할 ShowContextMenu 수 있습니다. 이 메서드에 대한 설명서에는 표시할 유효한 메뉴를 지정하는 명령 ID가 나열된 테이블이 포함되어 있습니다.

속성

Verbs

현재 사용할 수 있는 디자이너 동사의 컬렉션을 가져옵니다.

메서드

AddCommand(MenuCommand)

지정된 표준 메뉴 명령을 메뉴에 추가합니다.

AddVerb(DesignerVerb)

지정된 디자이너 동사를 전역 디자이너 동사 집합에 추가합니다.

FindCommand(CommandID)

지정된 명령 ID를 검색하고 그와 관련된 메뉴 명령을 반환합니다.

GlobalInvoke(CommandID)

지정된 명령 ID와 일치하는 메뉴나 디자이너 동사 명령을 호출합니다.

RemoveCommand(MenuCommand)

지정된 표준 메뉴 명령을 메뉴에서 제거합니다.

RemoveVerb(DesignerVerb)

지정된 디자이너 동사를 전역 디자이너 동사 컬렉션에서 제거합니다.

ShowContextMenu(CommandID, Int32, Int32)

지정된 위치에서 지정된 바로 가기 메뉴를 보여 줍니다.

적용 대상

추가 정보