Freigeben über


DrawItemEventArgs.DrawFocusRectangle Methode

Definition

Zeichnet ein Fokusrechteck innerhalb der im DrawItemEventArgs-Konstruktor angegebenen Begrenzungen.

public:
 virtual void DrawFocusRectangle();
public virtual void DrawFocusRectangle ();
abstract member DrawFocusRectangle : unit -> unit
override this.DrawFocusRectangle : unit -> unit
Public Overridable Sub DrawFocusRectangle ()

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 haben, und das DrawItem -Ereignis, um das Zeichnen jedes Elements in der ListBoxauszuführen. Der Beispielcode verwendet die Eigenschaften und Methoden der Klasse, 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 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 in dieser ListBox Reihenfolge mit dem Text "Apple", "Orange" und "Plum" 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

Wenn das gezeichnete Element über Focusverfügt, wird das Fokusrechteck gezeichnet.

Hinweise für Vererber

Achten Sie beim Überschreiben DrawFocusRectangle() in einer abgeleiteten Klasse darauf, die DrawFocusRectangle() -Methode der Basisklasse aufzurufen.

Gilt für:

Weitere Informationen