ListBox.DrawItem Händelse
Definition
Viktigt
En del information gäller för förhandsversionen av en produkt och kan komma att ändras avsevärt innan produkten blir allmänt tillgänglig. Microsoft lämnar inga garantier, uttryckliga eller underförstådda, avseende informationen som visas här.
Inträffar när en visuell aspekt av en ägarritad ListBox ändring.
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
Händelsetyp
Exempel
Följande kodexempel visar hur du skapar ägarritade ListBox objekt. Koden använder DrawMode egenskapen för att ange att de ritade objekten DrawItem är fasta och händelsen för att utföra ritningen av varje objekt i ListBox. Exempelkoden använder egenskaperna och metoderna för klassen DrawItemEventArgs som skickas som en parameter till händelsehanteraren för att rita objekten. Det här exemplet kräver att en ListBox kontroll med namnet listBox1 har lagts till i ett formulär och att DrawItem händelsen hanteras av händelsehanteraren som definieras i exempelkoden. Exemplet kräver också att objekt har lagts till ListBox i med texten "Apple", "Orange" och "Plum" i den ordningen.
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
Kommentarer
Den här händelsen används av en ägarritad ListBox. Händelsen utlöses endast när egenskapen DrawMode är inställd på DrawMode.OwnerDrawFixed eller DrawMode.OwnerDrawVariable. Du kan använda den här händelsen för att utföra de uppgifter som behövs för att rita objekt i ListBox. Om du har ett objekt med variabel storlek (när egenskapen DrawMode är inställd på DrawMode.OwnerDrawVariable) aktiveras händelsen innan du ritar ett objekt MeasureItem . Du kan skapa en händelsehanterare för händelsen för MeasureItem att ange storleken på det objekt som du ska rita i händelsehanteraren för DrawItem händelsen.
Mer information om hur du hanterar händelser finns i Hantera och höja händelser.