DrawItemEventArgs.Index Eigenschaft
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Ruft den Indexwert des Elements ab, das gerade gezeichnet wird.
public:
property int Index { int get(); };
public int Index { get; }
member this.Index : int
Public ReadOnly Property Index As Integer
Eigenschaftswert
Der numerische Wert, der den Item[Int32]-Wert des Elements darstellt, das gerade gezeichnet wird.
Beispiele
Im folgenden Beispiel wird veranschaulicht, wie Sie vom Besitzer gezeichnete ListBox Elemente erstellen. Der Code verwendet die DrawMode -Eigenschaft, um anzugeben, dass die gezeichneten Elemente eine feste Größe und das DrawItem -Ereignis zum Ausführen der Zeichnung jedes Elements in der ListBoxhaben. Der Beispielcode verwendet die Eigenschaften und Methoden der Klasse, die DrawItemEventArgs als Parameter an den Ereignishandler übergeben werden, um die Elemente zu zeichnen. In diesem Beispiel wird davon ausgegangen, dass einem Formular ein ListBox Steuerelement mit dem Namen listBox1
hinzugefügt wurde und dass das DrawItem Ereignis von dem im Beispielcode definierten Ereignishandler behandelt wird. Im Beispiel wird auch davon ausgegangen, dass Elemente mit dem Text "Apple", "Orange" und "Plum" in dieser Reihenfolge hinzugefügt ListBox wurden.
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
Hinweise
Diese Eigenschaft gibt den Item[] Wert des Elements zurück, das System.Windows.Forms.Control.ControlCollectionin gezeichnet wird. Diese Eigenschaft kann -1 zurückgeben, wenn Elemente aus der Liste entfernt wurden.