MenuItem.DrawItem Evento
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Se produce cuando la propiedad OwnerDraw de un elemento del menú se establece en true
y se realiza una solicitud para dibujar el elemento del menú.
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
Tipo de evento
Ejemplos
En el ejemplo de código siguiente se muestra cómo controlar el evento DrawItem. En este ejemplo se dibuja un elemento de menú mediante y Brush , Fonty, a continuación, se dibuja un Rectangle elemento alrededor del elemento de menú. El dibujo se realiza a través del Graphics objeto , que se pasa al controlador de eventos en el DrawItemEventArgs parámetro . En este ejemplo se requiere que haya inicializado la OwnerDraw propiedad para el elemento en true
. En el ejemplo de C#, agregue el código siguiente en el constructor del formulario, después InitializeComponent
de , para enlazar el evento:
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
Comentarios
El DrawItemEventArgs argumento pasado a un DrawItem controlador de eventos proporciona un Graphics objeto que permite realizar dibujos y otras operaciones gráficas en la superficie del elemento de menú. Puede usar este controlador de eventos para crear menús personalizados que satisfagan las necesidades de la aplicación. Para obtener más información sobre el manejo de eventos, consulte controlar y provocar eventos.