Partager via


DrawListViewItemEventArgs.DrawFocusRectangle Méthode

Définition

Dessine un rectangle de focus pour ListViewItem si celui-ci a le focus.

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

Exemples

L’exemple de code suivant montre comment utiliser la DrawFocusRectangle méthode dans une application qui fournit un dessin personnalisé pour un ListView contrôle. Dans l’exemple, un gestionnaire pour l’événement ListView.DrawItem dessine l’arrière-plan des éléments entiers. Dans toutes les vues à l’exception de la vue détails, ce gestionnaire dessine également le texte de premier plan. Dans la vue des détails, le texte de premier plan est dessiné dans l’événement ListView.DrawSubItem .

Pour obtenir l’exemple complet, consultez la rubrique de référence vue d’ensemble 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

Remarques

Utilisez cette méthode pour dessiner un rectangle de focus standard autour de l’élément. Le rectangle de focus est normalement dessiné dans la zone spécifiée par la Bounds propriété . Toutefois, si le contrôle se trouve dans la vue détails et que la valeur de la ListView.FullRowSelect propriété est false, le rectangle de focus est dessiné autour de la zone de texte par défaut de la première colonne de l’élément.

Le rectangle de focus est dessiné uniquement lorsque l’élément a le focus. Vous n’avez donc pas besoin de case activée l’état du focus de l’élément avant d’appeler cette méthode.

S’applique à

Voir aussi