ListBox.DrawMode Właściwość

Definicja

Pobiera lub ustawia tryb rysowania dla kontrolki.Gets or sets the drawing mode for the control.

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

Wartość właściwości

Jedna z wartości DrawMode reprezentujących tryb rysowania elementów formantu.One of the DrawMode values representing the mode for drawing the items of the control. Wartość domyślna to DrawMode.Normal.The default is DrawMode.Normal.

Wyjątki

Wartość przypisana do właściwości nie jest elementem członkowskim wyliczenia DrawMode.The value assigned to the property is not a member of the DrawMode enumeration.

ListBox wielokolumnowe nie może mieć wysokości o zmiennej wielkości.A multicolumn ListBox cannot have a variable-sized height.

Przykłady

Poniższy przykład kodu demonstruje sposób tworzenia elementów ListBox rysowanych przez właściciela.The following code example demonstrates how to create owner-drawn ListBox items. Kod używa właściwości DrawMode, aby określić, że rysowane elementy są stałym rozmiarem i zdarzenie DrawItem do przeprowadzenia rysowania każdego elementu w ListBox.The code uses the DrawMode property to specify that the items drawn are fixed sized and the DrawItem event to perform the drawing of each item into the ListBox. Przykładowy kod używa właściwości i metod klasy DrawItemEventArgs przekazaną jako parametr do programu obsługi zdarzeń, aby rysować elementy.The example code uses the properties and methods of the DrawItemEventArgs class passed as a parameter to the event handler to draw the items. Ten przykład wymaga, aby kontrolka ListBox wywołana listBox1 została dodana do formularza i że zdarzenie DrawItem jest obsługiwane przez procedurę obsługi zdarzeń zdefiniowaną w przykładowym kodzie.This example requires that a ListBox control called listBox1 has been added to a form and that the DrawItem event is handled by the event handler defined in the example code. Przykład wymaga również, aby elementy zostały dodane do ListBox z tekstem "Apple", "pomarańczowa" i "śliwe" w tej kolejności.The example also requires that items have been added to the ListBox with the text of "Apple", "Orange", and "Plum" in that order.

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

Dotyczy

Zobacz też