Teilen über


DrawListViewItemEventArgs.DrawFocusRectangle Methode

Definition

Zeichnet ein Fokusrechteck für das ListViewItem, wenn es den Fokus besitzt.

public:
 void DrawFocusRectangle();
public void DrawFocusRectangle ();
member this.DrawFocusRectangle : unit -> unit
Public Sub DrawFocusRectangle ()

Beispiele

Im folgenden Codebeispiel wird veranschaulicht, wie Sie die DrawFocusRectangle -Methode in einer Anwendung verwenden, die benutzerdefinierte Zeichnung für ein ListView Steuerelement bereitstellt. Im Beispiel zeichnet ein Handler für das ListView.DrawItem Ereignis den Hintergrund für ganze Elemente. In allen Ansichten mit Ausnahme der Detailansicht zeichnet dieser Handler auch den Vordergrundtext. In der Detailansicht wird der Vordergrundtext im ListView.DrawSubItem Ereignis gezeichnet.

Das vollständige Beispiel finden Sie im Übersichtsreferenzthema DrawListViewItemEventArgs .

// Draws the backgrounds for entire ListView items.
private void listView1_DrawItem(object sender,
    DrawListViewItemEventArgs e)
{
    if ((e.State & ListViewItemStates.Selected) != 0)
    {
        // Draw the background and focus rectangle for a selected item.
        e.Graphics.FillRectangle(Brushes.Maroon, e.Bounds);
        e.DrawFocusRectangle();
    }
    else
    {
        // Draw the background for an unselected item.
        using (LinearGradientBrush brush =
            new LinearGradientBrush(e.Bounds, Color.Orange,
            Color.Maroon, LinearGradientMode.Horizontal))
        {
            e.Graphics.FillRectangle(brush, e.Bounds);
        }
    }

    // Draw the item text for views other than the Details view.
    if (listView1.View != View.Details)
    {
        e.DrawText();
    }
}
' Draws the backgrounds for entire ListView items.
Private Sub listView1_DrawItem(ByVal sender As Object, _
    ByVal e As DrawListViewItemEventArgs) _
    Handles listView1.DrawItem

    If Not (e.State And ListViewItemStates.Selected) = 0 Then

        ' Draw the background for a selected item.
        e.Graphics.FillRectangle(Brushes.Maroon, e.Bounds)
        e.DrawFocusRectangle()

    Else

        ' Draw the background for an unselected item.
        Dim brush As New LinearGradientBrush(e.Bounds, Color.Orange, _
            Color.Maroon, LinearGradientMode.Horizontal)
        Try
            e.Graphics.FillRectangle(brush, e.Bounds)
        Finally
            brush.Dispose()
        End Try

    End If

    ' Draw the item text for views other than the Details view.
    If Not Me.listView1.View = View.Details Then
        e.DrawText()
    End If

End Sub

Hinweise

Verwenden Sie diese Methode, um ein Standardfokusrechteck um das Element zu zeichnen. Das Fokusrechteck wird normalerweise innerhalb des durch die -Eigenschaft angegebenen Bereichs Bounds gezeichnet. Wenn sich das Steuerelement jedoch in der Detailansicht befindet und der ListView.FullRowSelect Eigenschaftswert ist false, wird das Fokusrechteck um den Standardtextbereich für die erste Spalte des Elements gezeichnet.

Das Fokusrechteck wird nur gezeichnet, wenn das Element den Fokus hat, sodass Sie den Fokuszustand des Elements nicht überprüfen müssen, bevor Sie diese Methode aufrufen.

Gilt für:

Weitere Informationen