Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Tritt ein, wenn die OwnerDraw-Eigenschaft eines Menüelements auf true festgelegt ist und das Zeichnen des Menüelements angefordert wird.
Namespace: System.Windows.Forms
Assembly: System.Windows.Forms (in system.windows.forms.dll)
Syntax
'Declaration
Public Event DrawItem As DrawItemEventHandler
'Usage
Dim instance As MenuItem
Dim handler As DrawItemEventHandler
AddHandler instance.DrawItem, handler
public event DrawItemEventHandler DrawItem
public:
event DrawItemEventHandler^ DrawItem {
void add (DrawItemEventHandler^ value);
void remove (DrawItemEventHandler^ value);
}
/** @event */
public void add_DrawItem (DrawItemEventHandler value)
/** @event */
public void remove_DrawItem (DrawItemEventHandler value)
JScript unterstützt die Verwendung von Ereignissen, aber nicht die Deklaration von neuen Ereignissen.
Hinweise
Das an einen DrawItem-Ereignishandler übergebene DrawItemEventArgs-Argument stellt ein Graphics-Objekt bereit, mit dem Sie auf der Oberfläche des Menüelements zeichnen und andere grafische Operationen ausführen können. Mit diesem Ereignishandler können Sie benutzerdefinierte Menüs erstellen, die den Anforderungen der Anwendung entsprechen. Weitere Informationen zur Behandlung von Ereignissen finden Sie unter Behandeln von Ereignissen.
Beispiel
Im folgenden Codebeispiel wird das Behandeln des DrawItem-Ereignisses veranschaulicht. In diesem Beispiel wird ein Menüelement mit einem Brush und einem Font gezeichnet. Anschließend wird ein Rectangle um das Menüelement gezeichnet. Das Zeichnen wird über das Graphics-Objekt ausgeführt, das im DrawItemEventArgs-Parameter an den Ereignishandler übergeben wurde. Bei diesem Beispiel ist es erforderlich, dass die OwnerDraw-Eigenschaft des Elements mit true initialisiert wurde. Fügen Sie im C#-Beispiel im Konstruktor des Formulars nach InitializeComponent den folgenden Code hinzu, um das Ereignis einzubinden:
this.menuItem1.DrawItem += new DrawItemEventHandler(menuItem1_DrawItem);
' The DrawItem event handler.
Private Sub MenuItem1_DrawItem(ByVal sender As Object, ByVal e As System.Windows.Forms.DrawItemEventArgs) Handles MenuItem1.DrawItem
Dim MyCaption As String = "Owner Draw Item1"
' Create a Brush and a Font with which to draw the item.
Dim MyBrush As System.Drawing.Brush = System.Drawing.Brushes.AliceBlue
Dim MyFont As New Font(FontFamily.GenericSerif, 14, FontStyle.Underline, GraphicsUnit.Pixel)
Dim MySizeF As SizeF = e.Graphics.MeasureString(MyCaption, MyFont)
' Draw the item, and then draw a Rectangle around it.
e.Graphics.DrawString(MyCaption, MyFont, MyBrush, e.Bounds.X, e.Bounds.Y)
e.Graphics.DrawRectangle(Drawing.Pens.Black, New Rectangle(e.Bounds.X, e.Bounds.Y, MySizeF.Width, MySizeF.Height))
End Sub
// The DrawItem event handler.
private void menuItem1_DrawItem(object sender, System.Windows.Forms.DrawItemEventArgs e)
{
string myCaption = "Owner Draw Item1";
// Create a Brush and a Font with which to draw the item.
Brush myBrush = System.Drawing.Brushes.AliceBlue;
Font myFont = new Font(FontFamily.GenericSerif, 14, FontStyle.Underline, GraphicsUnit.Pixel);
SizeF mySizeF = e.Graphics.MeasureString(myCaption, myFont);
// Draw the item, and then draw a Rectangle around it.
e.Graphics.DrawString(myCaption, myFont, myBrush, e.Bounds.X, e.Bounds.Y);
e.Graphics.DrawRectangle(Pens.Black, new Rectangle(e.Bounds.X, e.Bounds.Y, Convert.ToInt32(mySizeF.Width), Convert.ToInt32(mySizeF.Height)));
}
// The DrawItem event handler.
private:
void menuItem1_DrawItem( Object^ /*sender*/, System::Windows::Forms::DrawItemEventArgs^ e )
{
String^ myCaption = "Owner Draw Item1";
// Create a Brush and a Font with which to draw the item.
Brush^ myBrush = System::Drawing::Brushes::AliceBlue;
System::Drawing::Font^ myFont = gcnew System::Drawing::Font( FontFamily::GenericSerif,14,FontStyle::Underline,GraphicsUnit::Pixel );
SizeF mySizeF = e->Graphics->MeasureString( myCaption, myFont );
// Draw the item, and then draw a Rectangle around it.
e->Graphics->DrawString( myCaption, myFont, myBrush, (float)e->Bounds.X, (float)e->Bounds.Y );
e->Graphics->DrawRectangle( Pens::Black, Rectangle(e->Bounds.X,e->Bounds.Y,Convert::ToInt32( mySizeF.Width ),Convert::ToInt32( mySizeF.Height )) );
}
// The DrawItem event handler.
private void menuItem1_DrawItem(Object sender,
System.Windows.Forms.DrawItemEventArgs e)
{
String myCaption = "Owner Draw Item1";
// Create a Brush and a Font with which to draw the item.
Brush myBrush = System.Drawing.Brushes.get_AliceBlue();
Font myFont = new Font(FontFamily.get_GenericSerif(), 14,
FontStyle.Underline, GraphicsUnit.Pixel);
SizeF mySizeF = e.get_Graphics().MeasureString(myCaption, myFont);
// Draw the item, and then draw a Rectangle around it.
e.get_Graphics().DrawString(myCaption, myFont, myBrush,
e.get_Bounds().get_X(), e.get_Bounds().get_Y());
e.get_Graphics().DrawRectangle(Pens.get_Black(),
new Rectangle(e.get_Bounds().get_X(), e.get_Bounds().get_Y(),
Convert.ToInt32(mySizeF.get_Width()),
Convert.ToInt32(mySizeF.get_Height())));
} //menuItem1_DrawItem
Plattformen
Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile für Pocket PC, Windows Mobile für Smartphone, 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
MenuItem-Klasse
MenuItem-Member
System.Windows.Forms-Namespace
MenuItem.OwnerDraw-Eigenschaft
MeasureItem