DrawListViewItemEventArgs.DrawFocusRectangle Methode

Definition

Zeichnet ein Fokusrechteck für das ListViewItem, wenn es den Fokus besitzt.Draws a focus rectangle for the ListViewItem if it has focus.

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

Beispiele

Im folgenden Codebeispiel wird veranschaulicht, wie die- DrawFocusRectangle Methode in einer Anwendung verwendet wird, die benutzerdefinierte Zeichnungen für ein-Steuerelement bereitstellt ListView .The following code example demonstrates how to use the DrawFocusRectangle method in an application that provides custom drawing for a ListView control. Im Beispiel zeichnet ein Handler für das- ListView.DrawItem Ereignis den Hintergrund für ganze Elemente.In the example, a handler for the ListView.DrawItem event draws the background for entire items. In allen Sichten außer der Detailansicht zeichnet dieser Handler auch den Vordergrund Text.In all views except the details view, this handler also draws the foreground text. In der Detailansicht wird der Vorder Grundtext im- ListView.DrawSubItem Ereignis gezeichnet.In the details view, the foreground text is drawn in the ListView.DrawSubItem event.

Das komplette Beispiel finden Sie im DrawListViewItemEventArgs Übersichts Referenz Thema.For the complete example, see the DrawListViewItemEventArgs overview reference topic.

// 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 Standardmäßiges Fokus Rechteck um das Element zu zeichnen.Use this method to draw a standard focus rectangle around the item. Das Fokus Rechteck wird normalerweise in dem von der-Eigenschaft angegebenen Bereich gezeichnet Bounds .The focus rectangle is normally drawn within the area specified by the Bounds property. Wenn sich das Steuerelement in der Detailansicht befindet und der- ListView.FullRowSelect Eigenschafts Wert ist false , wird das Fokus Rechteck um den Standardtext Bereich für die erste Spalte des Elements gezeichnet.If the control is in the details view and the ListView.FullRowSelect property value is false, however, the focus rectangle is drawn around the default text area for the first column of the item.

Das Fokus Rechteck wird nur gezeichnet, wenn das Element den Fokus besitzt, sodass Sie den Fokus Zustand des Elements nicht überprüfen müssen, bevor Sie diese Methode aufzurufen.The focus rectangle is drawn only when the item has focus, so you do not need to check the focus state of the item before you call this method.

Gilt für:

Siehe auch