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
- NamedPermissionSet für Vollzugriff auf Systemressourcen. Anforderungswerte: LinkDemand, InheritanceDemand. Zugeordneter Zustand: FullTrust
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