ListBox.DrawItem Gebeurtenis
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
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.