ListBox.DrawItem Evento

Definizione

Si verifica quando viene modificato un aspetto visivo di un oggetto ListBox disegnato dal proprietario.

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 

Tipo evento

Esempio

Nell'esempio di codice seguente viene illustrato come creare elementi disegnati ListBox dal proprietario. Il codice usa la DrawMode proprietà per specificare che gli elementi disegnati sono di dimensioni fisse e l'evento DrawItem per eseguire il disegno di ogni elemento in ListBox. Il codice di esempio usa le proprietà e i metodi della DrawItemEventArgs classe passati come parametro al gestore eventi per disegnare gli elementi. In questo esempio è necessario che un ListBox controllo chiamato listBox1 sia stato aggiunto a una maschera e che l'evento DrawItem venga gestito dal gestore eventi definito nel codice di esempio. L'esempio richiede anche che gli ListBox elementi siano stati aggiunti a con il testo di "Apple", "Orange" e "Plum" in tale ordine.

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 usato da un proprietario disegnato ListBoxda . L'evento viene generato solo quando la DrawMode proprietà è impostata su DrawMode.OwnerDrawFixed o DrawMode.OwnerDrawVariable. È possibile utilizzare questo evento per eseguire le attività necessarie per disegnare elementi in ListBox. Se si dispone di un elemento di dimensioni variabili (quando la DrawMode proprietà è impostata su DrawMode.OwnerDrawVariable), prima di disegnare un elemento, viene generato l'evento MeasureItem . È possibile creare un gestore eventi per l'evento MeasureItem per specificare le dimensioni per l'elemento che si intende disegnare nel gestore eventi per l'evento DrawItem .

Per ulteriori informazioni sulla gestione degli eventi, consultare gestione e generazione di eventi.

Si applica a

Vedi anche