DrawListViewItemEventArgs.DrawFocusRectangle Método

Definición

Dibuja un rectángulo de foco para el control ListViewItem si tiene el foco.

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

Ejemplos

En el ejemplo de código siguiente se muestra cómo usar el DrawFocusRectangle método en una aplicación que proporciona un dibujo personalizado para un ListView control. En el ejemplo, un controlador para el ListView.DrawItem evento dibuja el fondo de todos los elementos. En todas las vistas excepto la vista de detalles, este controlador también dibuja el texto en primer plano. En la vista de detalles, el texto en primer plano se dibuja en el ListView.DrawSubItem evento .

Para obtener el ejemplo completo, consulte el DrawListViewItemEventArgs tema de referencia de información general.

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

Comentarios

Utilice este método para dibujar un rectángulo de foco estándar alrededor del elemento. Normalmente, el rectángulo de foco se dibuja dentro del área especificada por la Bounds propiedad . Si el control está en la vista de detalles y el valor de la ListView.FullRowSelect propiedad es false, sin embargo, el rectángulo de foco se dibuja alrededor del área de texto predeterminada para la primera columna del elemento.

El rectángulo de foco se dibuja solo cuando el elemento tiene el foco, por lo que no es necesario comprobar el estado de foco del elemento antes de llamar a este método.

Se aplica a

Consulte también