Bagikan melalui


DrawListViewItemEventArgs.DrawFocusRectangle Metode

Definisi

Menggambar persegi panjang fokus untuk ListViewItem jika memiliki fokus.

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

Contoh

Contoh kode berikut menunjukkan cara menggunakan DrawFocusRectangle metode dalam aplikasi yang menyediakan gambar kustom untuk ListView kontrol. Dalam contoh, handler untuk ListView.DrawItem peristiwa menggambar latar belakang untuk seluruh item. Di semua tampilan kecuali tampilan detail, handler ini juga menggambar teks latar depan. Dalam tampilan detail, teks latar depan digambar dalam peristiwa tersebut ListView.DrawSubItem .

Untuk contoh lengkapnya, lihat DrawListViewItemEventArgs topik referensi gambaran umum.

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

Keterangan

Gunakan metode ini untuk menggambar persegi fokus standar di sekitar item. Persegi panjang fokus biasanya digambar dalam area yang ditentukan oleh Bounds properti . Jika kontrol berada dalam tampilan detail dan ListView.FullRowSelect nilai properti adalah false, namun, persegi panjang fokus digambar di sekitar area teks default untuk kolom pertama item.

Persegi panjang fokus hanya digambar ketika item memiliki fokus, jadi Anda tidak perlu memeriksa status fokus item sebelum Anda memanggil metode ini.

Berlaku untuk

Lihat juga