Condividi tramite


DrawListViewItemEventArgs.DrawFocusRectangle Metodo

Definizione

Crea un rettangolo di attivazione per l'elemento ListViewItem se è in stato attivo.

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

Esempio

Nell'esempio di codice seguente viene illustrato come usare il DrawFocusRectangle metodo in un'applicazione che fornisce disegno personalizzato per un ListView controllo. Nell'esempio, un gestore per l'evento ListView.DrawItem disegna lo sfondo per l'intero elemento. In tutte le visualizzazioni, ad eccezione della visualizzazione dei dettagli, questo gestore disegna anche il testo in primo piano. Nella visualizzazione dei dettagli viene disegnato il testo in primo piano nell'evento ListView.DrawSubItem .

Per l'esempio completo, vedere l'argomento DrawListViewItemEventArgs di riferimento di panoramica.

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

Commenti

Usare questo metodo per disegnare un rettangolo di stato attivo standard intorno all'elemento. Il rettangolo di messa a fuoco viene in genere disegnato all'interno dell'area Bounds specificata dalla proprietà. Se il controllo si trova nella visualizzazione dei dettagli e il ListView.FullRowSelect valore della proprietà è false, tuttavia, il rettangolo di stato attivo viene disegnato attorno all'area di testo predefinita per la prima colonna dell'elemento.

Il rettangolo dello stato attivo viene disegnato solo quando l'elemento ha lo stato attivo, quindi non è necessario controllare lo stato attivo dell'elemento prima di chiamare questo metodo.

Si applica a

Vedi anche