DrawListViewItemEventArgs.DrawFocusRectangle Metod

Definition

Ritar en fokusrektangel för om den ListViewItem har fokus.

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

Exempel

Följande kodexempel visar hur du använder DrawFocusRectangle metoden i ett program som tillhandahåller anpassad ritning för en ListView kontroll. I exemplet ritar en hanterare för ListView.DrawItem händelsen bakgrunden för hela objekt. I alla vyer utom informationsvyn ritar den här hanteraren även förgrundstexten. I informationsvyn ritas förgrundstexten ListView.DrawSubItem i händelsen.

Det fullständiga exemplet finns i översiktsreferensavsnittet 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

Kommentarer

Använd den här metoden för att rita en standardfokusrektangel runt objektet. Fokusrektangeln ritas normalt inom det område som anges av Bounds egenskapen. Om kontrollen finns i informationsvyn och egenskapsvärdet ListView.FullRowSelect är false, ritas dock fokusrektangeln runt standardtextområdet för den första kolumnen i objektet.

Fokusrektangeln ritas bara när objektet har fokus, så du behöver inte kontrollera objektets fokustillstånd innan du anropar den här metoden.

Gäller för

Se även