Udostępnij za pośrednictwem


DrawListViewItemEventArgs.DrawFocusRectangle Metoda

Definicja

Rysuje prostokąt fokusu ListViewItem , jeśli ma fokus.

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

Przykłady

W poniższym przykładzie kodu pokazano, jak używać DrawFocusRectangle metody w aplikacji, która udostępnia niestandardowy rysunek dla kontrolki ListView . W tym przykładzie program obsługi zdarzenia ListView.DrawItem rysuje tło dla całych elementów. We wszystkich widokach z wyjątkiem widoku szczegółów ta procedura obsługi rysuje również tekst pierwszego planu. W widoku szczegółów tekst pierwszego planu jest rysowany w ListView.DrawSubItem zdarzeniu.

Aby zapoznać się z kompletnym przykładem, zobacz DrawListViewItemEventArgs temat przeglądu.

// 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

Uwagi

Użyj tej metody, aby narysować standardowy prostokąt fokusu wokół elementu. Prostokąt fokusu jest zwykle rysowany w obszarze określonym przez Bounds właściwość . Jeśli kontrolka znajduje się w widoku szczegółów, a ListView.FullRowSelect wartość właściwości to false, jednak prostokąt fokusu jest rysowany wokół domyślnego obszaru tekstowego dla pierwszej kolumny elementu.

Prostokąt fokusu jest rysowany tylko wtedy, gdy element ma fokus, więc nie trzeba sprawdzać stanu fokusu elementu przed wywołaniem tej metody.

Dotyczy

Zobacz też