Cet article a fait l’objet d’une traduction automatique. Pour afficher l’article en anglais, activez la case d’option Anglais. Vous pouvez également afficher le texte anglais dans une fenêtre contextuelle en faisant glisser le pointeur de la souris sur le texte traduit.
Traduction
Anglais

DrawItemEventHandler délégué

 

Date de publication : novembre 2016

Représente la méthode qui gérera le DrawItem événements d’un ComboBox, ListBox, MenuItem, ou TabControl contrôle.

Espace de noms:   System.Windows.Forms
Assembly:  System.Windows.Forms (dans System.Windows.Forms.dll)

public delegate void DrawItemEventHandler(
	object sender,
	DrawItemEventArgs e
)

Paramètres

sender
Type: System.Object

Source de l'événement.

e
Type: System.Windows.Forms.DrawItemEventArgs

DrawItemEventArgs qui contient les données d'événement.

Lorsque vous créez un délégué DrawItemEventArgs, vous identifiez la méthode qui gérera l'événement. Pour associer l'événement au gestionnaire d'événements, ajoutez une instance du délégué à l'événement. Le gestionnaire d'événements est appelé chaque fois qu'un événement se produit, sauf si vous supprimez le délégué. Pour plus d'informations sur les délégués de gestionnaires d'événements, consultez la page Gestion et déclenchement d'événements.

L’exemple de code suivant illustre un menu avec un élément de menu owner-drawn. Cet exemple utilise la AddHandler instruction et AddressOf opérateur pour désigner un délégué pour gérer les MenuItem.DrawItem événement. Pour exécuter l’exemple collez-le dans un formulaire qui importe les espaces de noms System, System.Windows.Forms et System.Drawing. Assurez-vous que tous les événements sont associés à leurs méthodes de gestion d’événements.

// Declare the MainMenu control.
internal System.Windows.Forms.MainMenu MainMenu1;

// Declare MenuItem2 as With-Events because it will be user drawn.
internal System.Windows.Forms.MenuItem MenuItem2;


private void InitializeMenu()
{

	// Create MenuItem1, which will be drawn by the operating system.
	MenuItem MenuItem1 = new MenuItem("Regular Menu Item");

	// Create MenuItem2.
	MenuItem2 = new MenuItem("Custom Menu Item");

	// Set OwnerDraw property to true. This requires handling the
	// DrawItem event for this menu item.
	MenuItem2.OwnerDraw = true;

	//Add the event-handler delegate to handle the DrawItem event.
       MenuItem2.DrawItem += new DrawItemEventHandler(DrawCustomMenuItem);

     // Add the items to the menu.
	MainMenu1 = new MainMenu(new MenuItem[]{MenuItem1, MenuItem2});																													  

	// Add the menu to the form.
	this.Menu = this.MainMenu1;
}

// Draw the custom menu item.
private void DrawCustomMenuItem(object sender, 
	DrawItemEventArgs e)
{

	// Cast the sender to MenuItem so you can access text property.
	MenuItem customItem = (MenuItem) sender;

	// Create a Brush and a Font to draw the MenuItem.
	System.Drawing.Brush aBrush = System.Drawing.Brushes.DarkMagenta;
	Font aFont = new Font("Garamond", 10, 
		FontStyle.Italic, GraphicsUnit.Point);

	// Get the size of the text to use later to draw an ellipse
	// around the item.
	SizeF stringSize = e.Graphics.MeasureString(
		customItem.Text, aFont);

	// Draw the item and then draw the ellipse.
	e.Graphics.DrawString(customItem.Text, aFont, 
		aBrush, e.Bounds.X, e.Bounds.Y);
	e.Graphics.DrawEllipse(new Pen(System.Drawing.Color.Black, 2),
		new Rectangle(e.Bounds.X, e.Bounds.Y, 
		(System.Int32)stringSize.Width,
		(System.Int32)stringSize.Height));
}

.NET Framework
Disponible depuis 1.1
Retour au début
Afficher: