Bagikan melalui


ListView.DrawItem Kejadian

Definisi

Terjadi ketika digambar ListView dan OwnerDraw properti diatur ke true.

public:
 event System::Windows::Forms::DrawListViewItemEventHandler ^ DrawItem;
public event System.Windows.Forms.DrawListViewItemEventHandler DrawItem;
public event System.Windows.Forms.DrawListViewItemEventHandler? DrawItem;
member this.DrawItem : System.Windows.Forms.DrawListViewItemEventHandler 
Public Custom Event DrawItem As DrawListViewItemEventHandler 

Jenis Acara

Contoh

Contoh kode berikut menyediakan implementasi DrawItem penanganan aktivitas. Untuk contoh lengkapnya, lihat OwnerDraw topik referensi.

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

Kejadian ini memungkinkan Anda menyesuaikan tampilan ListView kontrol menggunakan gambar pemilik. Ini dinaikkan hanya ketika OwnerDraw properti diatur ke true. Untuk informasi selengkapnya tentang gambar pemilik, lihat OwnerDraw topik referensi properti.

Peristiwa DrawItem dapat terjadi untuk setiap ListView item. View Ketika properti diatur ke View.Details, DrawSubItem peristiwa dan DrawColumnHeader juga terjadi. Dalam hal ini, Anda dapat menangani DrawItem peristiwa untuk menggambar elemen yang umum untuk semua item, seperti latar belakang, dan menangani DrawSubItem peristiwa untuk menggambar elemen untuk subitem individual, seperti nilai teks. Anda juga dapat menggambar semua item dalam ListView kontrol hanya menggunakan salah satu dari dua peristiwa, meskipun ini mungkin kurang nyaman. Untuk menggambar header kolom dalam tampilan detail, Anda harus menangani peristiwa.DrawColumnHeader

Catatan

Karena bug dalam kontrol Win32 yang mendasar, DrawItem peristiwa terjadi tanpa menyertai DrawSubItem peristiwa sekali per baris dalam tampilan detail ketika penunjuk mouse bergerak di atas baris, menyebabkan apa pun yang dilukis dalam DrawSubItem penanganan aktivitas dilukis oleh latar belakang kustom yang digambar dalam DrawItem penanganan aktivitas. Lihat contoh dalam OwnerDraw topik referensi untuk solusi yang membatalkan setiap baris saat peristiwa tambahan terjadi. Solusi alternatif adalah menempatkan semua kode gambar kustom Anda dalam DrawSubItem penanganan aktivitas dan melukis latar belakang untuk seluruh item (termasuk subitem) hanya ketika nilainya DrawListViewSubItemEventArgs.ColumnIndex adalah 0.

Untuk informasi selengkapnya tentang menangani peristiwa, lihat Menangani dan Menaikkan Peristiwa.

Berlaku untuk

Lihat juga