ListBox.DrawItem Evento

Definizione

Si verifica quando viene modificato un aspetto visivo di un oggetto ListBox disegnato dal proprietario.Occurs when a visual aspect of an owner-drawn ListBox changes.

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 evento

DrawItemEventHandler

Esempio

Nell'esempio di codice riportato di seguito viene illustrato come creare elementi creati dal proprietario ListBox .The following code example demonstrates how to create owner-drawn ListBox items. Il codice utilizza la DrawMode proprietà per specificare che gli elementi disegnati sono a dimensione fissa e l' DrawItem evento per eseguire il disegno di ogni elemento ListBox in.The code uses the DrawMode property to specify that the items drawn are fixed sized and the DrawItem event to perform the drawing of each item into the ListBox. Il codice di esempio usa le proprietà e i metodi della DrawItemEventArgs classe passati come parametro al gestore eventi per creare gli elementi.The example code uses the properties and methods of the DrawItemEventArgs class passed as a parameter to the event handler to draw the items. Questo esempio richiede che un ListBox controllo denominato listBox1 sia stato aggiunto a un form e che l' DrawItem evento venga gestito dal gestore eventi definito nel codice di esempio.This example requires that a ListBox control called listBox1 has been added to a form and that the DrawItem event is handled by the event handler defined in the example code. L'esempio richiede anche che gli elementi siano stati aggiunti all'oggetto ListBox con il testo "Apple", "Orange" e "prugne" in tale ordine.The example also requires that items have been added to the ListBox with the text of "Apple", "Orange", and "Plum" in that order.

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

Commenti

Questo evento viene utilizzato da un oggetto creato dal proprietario ListBox .This event is used by an owner-drawn ListBox. L'evento viene generato solo quando la DrawMode proprietà è impostata su DrawMode.OwnerDrawFixed o DrawMode.OwnerDrawVariable .The event is only raised when the DrawMode property is set to DrawMode.OwnerDrawFixed or DrawMode.OwnerDrawVariable. È possibile utilizzare questo evento per eseguire le attività necessarie per creare elementi nell'oggetto ListBox .You can use this event to perform the tasks needed to draw items in the ListBox. Se si dispone di un elemento a dimensione variabile (quando la DrawMode proprietà è impostata su DrawMode.OwnerDrawVariable ), prima di disegnare un elemento, MeasureItem viene generato l'evento.If you have a variable-sized item (when the DrawMode property is set to DrawMode.OwnerDrawVariable), before drawing an item, the MeasureItem event is raised. È possibile creare un gestore eventi per l' MeasureItem evento per specificare le dimensioni per l'elemento che verrà disegnato nel gestore eventi per l' DrawItem evento.You can create an event handler for the MeasureItem event to specify the size for the item that you are going to draw in your event handler for the DrawItem event.

Per ulteriori informazioni sulla gestione degli eventi, consultare gestione e generazione di eventi.For more information about handling events, see Handling and Raising Events.

Si applica a

Vedi anche