MenuItem.DrawItem Event

Definition

Tritt ein, wenn die OwnerDraw-Eigenschaft eines Menüelements auf true festgelegt ist und das Zeichnen des Menüelements angefordert wird.Occurs when the OwnerDraw property of a menu item is set to true and a request is made to draw the menu item.

public:
 event System::Windows::Forms::DrawItemEventHandler ^ DrawItem;
public event System.Windows.Forms.DrawItemEventHandler DrawItem;
member this.DrawItem : System.Windows.Forms.DrawItemEventHandler 
Public Custom Event DrawItem As DrawItemEventHandler 

Examples

Im folgenden Codebeispiel wird veranschaulicht, wie das DrawItem-Ereignis behandelt wird.The following code example demonstrates how to handle the DrawItem event. In diesem Beispiel wird ein Menü Element mithilfe eines Brush und eines Fontgezeichnet, und dann wird ein Rectangle um das Menü Element gezeichnet.This example draws a menu item using a Brush and a Font, and then draws a Rectangle around the menu item. Die Zeichnung wird über das Graphics-Objekt ausgeführt, das an den-Ereignishandler im DrawItemEventArgs-Parameter übergeben wird.The drawing is performed through the Graphics object, which is passed to the event handler in the DrawItemEventArgs parameter. Für dieses Beispiel ist es erforderlich, dass Sie die OwnerDraw-Eigenschaft für das Element initialisiert haben, um true.This example requires that you have initialized the OwnerDraw property for the item to true. C#Fügen Sie im folgenden Beispiel den folgenden Code im Konstruktor des Formulars nach dem InitializeComponentein, um das Ereignis zu verbinden:For the C# example, add the following code in the form's constructor, after InitializeComponent, to hook up the event:

this.menuItem1.DrawItem += new DrawItemEventHandler(menuItem1_DrawItem);

   // 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.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 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

Remarks

Das DrawItemEventArgs Argument, das an einen DrawItem-Ereignishandler weitergegeben wird, stellt ein Graphics Objekt bereit, das es Ihnen ermöglicht, Zeichen und andere grafische Vorgänge auf der Oberfläche des Menü Elements auszuführen.The DrawItemEventArgs argument passed to a DrawItem event handler provides a Graphics object that enables you to perform drawing and other graphical operations on the surface of the menu item. Mit diesem Ereignishandler können Sie benutzerdefinierte Menüs erstellen, die den Anforderungen Ihrer Anwendung entsprechen.You can use this event handler to create custom menus that meet the needs of your application. Weitere Informationen zur Behandlung von Ereignissen finden Sie unter behandeln und Auslösen von Ereignissen.For more information about handling events, see Handling and Raising Events.

Applies to

See also