Freigeben über


MenuCommand-Klasse

Stellt einen Befehl in einem Windows-Menü oder auf einer Windows-Symbolleiste dar.

Namespace: System.ComponentModel.Design
Assembly: System (in system.dll)

Syntax

'Declaration
<ComVisibleAttribute(True)> _
Public Class MenuCommand
'Usage
Dim instance As MenuCommand
[ComVisibleAttribute(true)] 
public class MenuCommand
[ComVisibleAttribute(true)] 
public ref class MenuCommand
/** @attribute ComVisibleAttribute(true) */ 
public class MenuCommand
ComVisibleAttribute(true) 
public class MenuCommand

Hinweise

Die MenuCommand-Klasse stellt Informationen über einen Befehl in einem Windows-Menü oder auf einer Windows-Symbolleiste dar. Die IMenuCommandService-Schnittstelle ermöglicht Ihnen das Hinzufügen von MenuCommand-Objekten zum Visual Studio .NET-Menü.

Diese Klasse stellt folgende Member bereit:

  • Eine Ereignishandlereigenschaft, der Sie einen Ereignishandler für den Befehl anfügen können.

  • Eine CommandID-Klasse, die den Befehl eindeutig bezeichnet.

  • Eine Invoke-Methode, die den Befehl ausführt.

  • Eine OnCommandChanged-Methode, die überschrieben werden kann, um das Ereignis zu behandeln, das beim Auswählen eines neuen Befehls eintritt.

  • Zustände von booleschen Flags, die anzeigen, ob der Befehl Checked, Enabled, Supported oder Visible ist.

  • Eine OleStatus-Eigenschaft, die den Code des OLE-Befehlsstatus für den Befehl angibt.

  • Eine Überschreibung für die ToString-Methode.

Hinweis

Das auf diese Klasse angewendete HostProtectionAttribute-Attribut besitzt den Resources-Eigenschaftenwert SharedState. Das HostProtectionAttribute hat keine Auswirkungen auf Desktopanwendungen (die normalerweise durch Doppelklicken auf ein Symbol, Eingeben eines Befehls oder eines URL in einem Browser gestartet werden). Weitere Informationen finden Sie unter der HostProtectionAttribute-Klasse oder unter SQL Server-Programmierung und Hostschutzattribute.

Beispiel

Im folgenden Codebeispiel wird ein MenuCommand-Objekt erstellt. Seine Eigenschaften werden konfiguriert, und es wird dem IMenuCommandService-Objekt hinzugefügt.

Erstellen Sie im Formular eine Instanz der Component1-Klasse, und öffnen Sie das Formular in einer Entwurfsumgebung wie Visual Studio. Drücken Sie die F1-TASTE, um das MenuCommand aufzurufen.

Imports System
Imports System.ComponentModel
Imports System.ComponentModel.Design

Namespace VbMenuCommand
    <Designer(GetType(CDesigner))> _
    Public Class Component1
        Inherits System.ComponentModel.Component
        Private components As System.ComponentModel.Container = Nothing

        Public Sub New(ByVal container As System.ComponentModel.IContainer)
            container.Add(Me)
            InitializeComponent()
        End Sub

        Public Sub New()
            InitializeComponent()
        End Sub

        Private Sub InitializeComponent()
        End Sub
    End Class

    <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
End Namespace
using System;
using System.ComponentModel;
using System.ComponentModel.Design;

namespace CSMenuCommand
{
    [Designer(typeof(CDesigner))]
    public class Component1 : System.ComponentModel.Component
    {
        private System.ComponentModel.Container components = null;

        public Component1(System.ComponentModel.IContainer container)
        {
            container.Add(this);
            InitializeComponent();
        }

        public Component1()
        {
            InitializeComponent();
        }

        private void InitializeComponent()
        {
            components = new System.ComponentModel.Container();
        }
    }

    [System.Security.Permissions.PermissionSet(System.Security.Permissions.SecurityAction.Demand, Name = "FullTrust")] 
    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.");
        }
    }
} 
#using <system.dll>
#using <system.design.dll>
#using <system.windows.forms.dll>

using namespace System;
using namespace System::ComponentModel;
using namespace System::ComponentModel::Design;
using namespace System::Security::Permissions;

namespace CppMenuCommand
{
   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." );
      }
   };
}

.NET Framework-Sicherheit

Vererbungshierarchie

System.Object
  System.ComponentModel.Design.MenuCommand
     System.ComponentModel.Design.DesignerVerb

Threadsicherheit

Alle öffentlichen statischen (Shared in Visual Basic) Member dieses Typs sind threadsicher. Bei Instanzmembern ist die Threadsicherheit nicht gewährleistet.

Plattformen

Windows 98, Windows 2000 SP4, Windows Millennium Edition, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition

.NET Framework unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen.

Versionsinformationen

.NET Framework

Unterstützt in: 2.0, 1.1, 1.0

Siehe auch

Referenz

MenuCommand-Member
System.ComponentModel.Design-Namespace
StandardCommands
IMenuCommandService-Schnittstelle
CommandID-Klasse

Weitere Ressourcen

Designerbefehle und das DesignerAction-Objektmodell für Windows Forms