ListBox.DrawItem Gebeurtenis

Definitie

Treedt op wanneer een visueel aspect van een door de eigenaar getekende ListBox wijzigingen aanbrengt.

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 

Gebeurtenistype

Voorbeelden

In het volgende codevoorbeeld ziet u hoe u door de eigenaar getekende ListBox items maakt. De code gebruikt de DrawMode eigenschap om op te geven dat de getekende items een vaste grootte hebben en de DrawItem gebeurtenis om de tekening van elk item in het ListBoxitem uit te voeren. In de voorbeeldcode worden de eigenschappen en methoden van de DrawItemEventArgs klasse gebruikt die als parameter aan de gebeurtenishandler zijn doorgegeven om de items te tekenen. Voor dit voorbeeld is vereist dat een ListBox besturingselement dat is aangeroepen listBox1 , is toegevoegd aan een formulier en dat de DrawItem gebeurtenis wordt verwerkt door de gebeurtenis-handler die is gedefinieerd in de voorbeeldcode. Het voorbeeld vereist ook dat items in die volgorde aan de ListBox items zijn toegevoegd met de tekst 'Apple', 'Oranje' en 'Plum'.

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

Opmerkingen

Deze gebeurtenis wordt gebruikt door een door de eigenaar getekende ListBoxgebeurtenis. De gebeurtenis wordt alleen gegenereerd wanneer de DrawMode eigenschap is ingesteld op DrawMode.OwnerDrawFixed of DrawMode.OwnerDrawVariable. U kunt deze gebeurtenis gebruiken om de taken uit te voeren die nodig zijn om items te tekenen in de ListBox. Als u een item met een variabele grootte hebt (wanneer de DrawMode eigenschap is ingesteld op DrawMode.OwnerDrawVariable), voordat u een item tekent, wordt de MeasureItem gebeurtenis gegenereerd. U kunt een gebeurtenis-handler voor de MeasureItem gebeurtenis maken om de grootte op te geven voor het item dat u gaat tekenen in uw gebeurtenis-handler voor de DrawItem gebeurtenis.

Zie Gebeurtenissen verwerken en genereren voor meer informatie over het afhandelen van gebeurtenissen.

Van toepassing op

Zie ook