ListBox.DrawMode 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 Zeichnungsmodus für das Steuerelement ab oder legt diesen fest.
public:
virtual property System::Windows::Forms::DrawMode DrawMode { System::Windows::Forms::DrawMode get(); void set(System::Windows::Forms::DrawMode value); };
public virtual System.Windows.Forms.DrawMode DrawMode { get; set; }
member this.DrawMode : System.Windows.Forms.DrawMode with get, set
Public Overridable Property DrawMode As DrawMode
Eigenschaftswert
Einer der DrawMode-Werte, der den Modus zum Zeichnen der Elemente für das Steuerelement darstellt. Der Standardwert ist DrawMode.Normal
.
Ausnahmen
Der Wert, der der Eigenschaft zugewiesen wurde, ist kein Member der DrawMode-Enumeration.
Eine mehrspaltige ListBox darf keine Höhe mit variabler Größe aufweisen.
Beispiele
Im folgenden Codebeispiel 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 haben und das DrawItem Ereignis zum Ausführen der Zeichnung jedes Elements in den ListBox. Der Beispielcode verwendet die Eigenschaften und Methoden der Klasse, die DrawItemEventArgs als Parameter an den Ereignishandler übergeben werden, um die Elemente zu zeichnen. Dieses Beispiel erfordert, dass einem Formular ein ListBox Steuerelement mit dem Namen listBox1
hinzugefügt wurde und das DrawItem Ereignis von dem im Beispielcode definierten Ereignishandler behandelt wird. Das Beispiel erfordert auch, dass Elemente mit dem ListBox Text "Apple", "Orange" und "Plum" in dieser Reihenfolge hinzugefügt 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