Compartilhar via


DrawListViewItemEventArgs.DrawFocusRectangle Método

Definição

Desenha um retângulo de foco para o ListViewItem se ele tiver o foco.

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

Exemplos

O exemplo de código a seguir demonstra como usar o DrawFocusRectangle método em um aplicativo que fornece desenho personalizado para um ListView controle . No exemplo, um manipulador para o ListView.DrawItem evento desenha a tela de fundo para itens inteiros. Em todos os modos de exibição, exceto na exibição de detalhes, esse manipulador também desenha o texto em primeiro plano. Na exibição de detalhes, o texto em primeiro plano é desenhado no ListView.DrawSubItem evento.

Para obter o exemplo completo, consulte o DrawListViewItemEventArgs tópico de referência de visão geral.

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

Comentários

Use esse método para desenhar um retângulo de foco padrão ao redor do item. O retângulo de foco normalmente é desenhado dentro da área especificada pela Bounds propriedade . Se o controle estiver na exibição de detalhes e o valor da ListView.FullRowSelect propriedade for false, no entanto, o retângulo de foco será desenhado em torno da área de texto padrão para a primeira coluna do item.

O retângulo de foco é desenhado somente quando o item tem foco, portanto, você não precisa marcar o estado de foco do item antes de chamar esse método.

Aplica-se a

Confira também