ListBox.DrawItem Événement
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Se produit en cas de modification de l'aspect visuel d'un ListBox owner-drawn.
public:
event System::Windows::Forms::DrawItemEventHandler ^ DrawItem;
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
Type d'événement
Exemples
L’exemple de code suivant montre comment créer des éléments dessinés par ListBox le propriétaire. Le code utilise la DrawMode propriété pour spécifier que les éléments dessinés sont de taille fixe et que l’événement DrawItem pour effectuer le dessin de chaque élément dans le ListBox. L’exemple de code utilise les propriétés et les méthodes de la DrawItemEventArgs classe passée en tant que paramètre au gestionnaire d’événements pour dessiner les éléments. Cet exemple nécessite qu’un ListBox contrôle appelé listBox1
ait été ajouté à un formulaire et que l’événement DrawItem soit géré par le gestionnaire d’événements défini dans l’exemple de code. L’exemple exige également que des éléments aient été ajoutés au ListBox avec le texte « Apple », « Orange » et « Plum » dans cet ordre.
private ListBox ListBox1 = new ListBox();
private void InitializeListBox()
{
ListBox1.Items.AddRange(new Object[]
{ "Red Item", "Orange Item", "Purple Item" });
ListBox1.Location = new System.Drawing.Point(81, 69);
ListBox1.Size = new System.Drawing.Size(120, 95);
ListBox1.DrawMode = DrawMode.OwnerDrawFixed;
ListBox1.DrawItem += new DrawItemEventHandler(ListBox1_DrawItem);
Controls.Add(ListBox1);
}
private void ListBox1_DrawItem(object sender,
System.Windows.Forms.DrawItemEventArgs e)
{
// Draw the background of the ListBox control for each item.
e.DrawBackground();
// Define the default color of the brush as black.
Brush myBrush = Brushes.Black;
// Determine the color of the brush to draw each item based
// on the index of the item to draw.
switch (e.Index)
{
case 0:
myBrush = Brushes.Red;
break;
case 1:
myBrush = Brushes.Orange;
break;
case 2:
myBrush = Brushes.Purple;
break;
}
// Draw the current item text based on the current Font
// and the custom brush settings.
e.Graphics.DrawString(ListBox1.Items[e.Index].ToString(),
e.Font, myBrush, e.Bounds, StringFormat.GenericDefault);
// If the ListBox has focus, draw a focus rectangle around the selected item.
e.DrawFocusRectangle();
}
Private WithEvents ListBox1 As New ListBox()
Private Sub InitializeListBox()
ListBox1.Items.AddRange(New Object() _
{"Red Item", "Orange Item", "Purple Item"})
ListBox1.Location = New System.Drawing.Point(81, 69)
ListBox1.Size = New System.Drawing.Size(120, 95)
ListBox1.DrawMode = DrawMode.OwnerDrawFixed
Controls.Add(ListBox1)
End Sub
Private Sub ListBox1_DrawItem(ByVal sender As Object, _
ByVal e As System.Windows.Forms.DrawItemEventArgs) _
Handles ListBox1.DrawItem
' Draw the background of the ListBox control for each item.
e.DrawBackground()
' Define the default color of the brush as black.
Dim myBrush As Brush = Brushes.Black
' Determine the color of the brush to draw each item based on
' the index of the item to draw.
Select Case e.Index
Case 0
myBrush = Brushes.Red
Case 1
myBrush = Brushes.Orange
Case 2
myBrush = Brushes.Purple
End Select
' Draw the current item text based on the current
' Font and the custom brush settings.
e.Graphics.DrawString(ListBox1.Items(e.Index).ToString(), _
e.Font, myBrush, e.Bounds, StringFormat.GenericDefault)
' If the ListBox has focus, draw a focus rectangle around _
' the selected item.
e.DrawFocusRectangle()
End Sub
Remarques
Cet événement est utilisé par un propriétaire dessiné ListBox. L’événement est déclenché uniquement lorsque la DrawMode propriété a la valeur DrawMode.OwnerDrawFixed
ou DrawMode.OwnerDrawVariable
. Vous pouvez utiliser cet événement pour effectuer les tâches nécessaires pour dessiner des éléments dans .ListBox Si vous avez un élément de taille variable (lorsque la propriété a la DrawModeDrawMode.OwnerDrawVariable
valeur ), avant de dessiner un élément, l’événement MeasureItem est déclenché. Vous pouvez créer un gestionnaire d’événements pour l’événement MeasureItem afin de spécifier la taille de l’élément que vous allez dessiner dans votre gestionnaire d’événements pour l’événement DrawItem .
Pour plus d'informations sur la gestion des événements, voir gestion et déclenchement d’événements.