Freigeben über


DrawMode Enumeration

Definition

Gibt an, wie die in einem Steuerelement enthaltenen Elemente gezeichnet werden.

public enum class DrawMode
public enum DrawMode
type DrawMode = 
Public Enum DrawMode
Vererbung
DrawMode

Felder

Name Wert Beschreibung
Normal 0

Alle Elemente in einem Steuerelement werden vom Betriebssystem und in derselben Größe gezeichnet.

OwnerDrawFixed 1

Alle Elemente in einem Steuerelement werden manuell und in derselben Größe gezeichnet.

OwnerDrawVariable 2

Alle Elemente in einem Steuerelement werden manuell gezeichnet und können in der Größe voneinander abweichen.

Beispiele

Im folgenden Beispiel wird veranschaulicht, wie Sie vom Besitzer gezeichnete ListBox Elemente erstellen. Der Code verwendet die ListBox.DrawMode -Eigenschaft, um anzugeben, dass die gezeichneten Elemente eine feste Größe haben, und das ListBox.DrawItem -Ereignis, um die Zeichnung jedes Elements in der ListBoxauszuführen. Im Beispiel werden die Eigenschaften und Methoden der Klasse verwendet, die DrawItemEventArgs als Parameter an den Ereignishandler übergeben wird, um die Elemente zu zeichnen. In diesem Beispiel wird davon ausgegangen, dass einem Formular ein ListBox Steuerelement namens listBox1 hinzugefügt wurde und dass das ListBox.DrawItem Ereignis vom im Beispiel definierten Ereignishandler behandelt wird. Im Beispiel wird auch davon ausgegangen, dass Elemente mit ListBox dem 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

Hinweise

Diese Enumeration wird von Membern wie DrawMode in den ListBoxKlassen , CheckedListBoxund ComboBox verwendet.

Sie können das Zeichnen einiger Steuerelemente oder bestimmter Elemente überschreiben. Diese Enumeration wird verwendet, um anzugeben, ob ein Steuerelement vom Betriebssystem gezeichnet wird oder ob Ihr eigener Code die Zeichnung des Steuerelements verarbeitet.

Hinweis

Die CheckedListBox -Klasse unterstützt Normalnur. Besitzerzeichnungsmodi werden ignoriert.

Weitere Informationen zur Verwendung der DrawMode -Enumeration finden Sie unter den MeasureItem Ereignissen und DrawItem und der ItemHeight -Eigenschaft.

Gilt für:

Weitere Informationen