Partager via


ListBox.OnDrawItem(DrawItemEventArgs) Méthode

Définition

Déclenche l’événement DrawItem.

protected:
 virtual void OnDrawItem(System::Windows::Forms::DrawItemEventArgs ^ e);
protected virtual void OnDrawItem(System.Windows.Forms.DrawItemEventArgs e);
abstract member OnDrawItem : System.Windows.Forms.DrawItemEventArgs -> unit
override this.OnDrawItem : System.Windows.Forms.DrawItemEventArgs -> unit
Protected Overridable Sub OnDrawItem (e As DrawItemEventArgs)

Paramètres

e
DrawItemEventArgs

Qui DrawItemEventArgs contient les données d’événement.

Exemples

L’exemple de code suivant montre comment créer des éléments dessinés ListBox par 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 méthodes de la DrawItemEventArgs classe passées 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 est géré par le gestionnaire d’événements défini dans l’exemple de code. L’exemple exige également que les éléments aient été ajoutés au ListBox 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

Le déclenchement d’un événement appelle le gestionnaire d’événements par le biais d’un délégué. Pour plus d’informations, consultez Gestion et déclenchement d’événements.

La OnDrawItem méthode permet également aux classes dérivées de gérer l’événement sans attacher de délégué. Il s’agit de la technique recommandée pour gérer l’événement dans une classe dérivée.

Notes pour les héritiers

En cas de OnDrawItem(DrawItemEventArgs) substitution dans une classe dérivée, veillez à appeler la méthode de la classe de OnDrawItem(DrawItemEventArgs) base afin que les délégués inscrits reçoivent l’événement.

S’applique à

Voir aussi