Bagikan melalui


ListBox.DrawItem Kejadian

Definisi

Terjadi ketika aspek visual dari pemilik yang digambar ListBox berubah.

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

Jenis Acara

Contoh

Contoh kode berikut menunjukkan cara membuat item yang digambar ListBox pemilik. Kode menggunakan DrawMode properti untuk menentukan bahwa item yang digambar berukuran tetap dan DrawItem peristiwa untuk melakukan gambar setiap item ke dalam ListBox. Contoh kode menggunakan properti dan metode kelas yang DrawItemEventArgs diteruskan sebagai parameter ke penanganan aktivitas untuk menggambar item. Contoh ini mengharuskan kontrol yang ListBox disebut listBox1 telah ditambahkan ke formulir dan bahwa peristiwa ditangani DrawItem oleh penanganan aktivitas yang ditentukan dalam kode contoh. Contohnya juga mengharuskan item telah ditambahkan ke ListBox dengan teks "Apple", "Oranye", dan "Plum" dalam urutan tersebut.

private ListBox ListBox1 = new ListBox();
private void InitializeListBox()
{
    ListBox1.Items.AddRange(new Object[] 
        { "Red Item", "Orange Item", "Purple Item" });
    ListBox1.Location = new System.Drawing.Point(81, 69);
    ListBox1.Size = new System.Drawing.Size(120, 95);
    ListBox1.DrawMode = DrawMode.OwnerDrawFixed;
    ListBox1.DrawItem += new DrawItemEventHandler(ListBox1_DrawItem);
    Controls.Add(ListBox1);
}

private void ListBox1_DrawItem(object sender, 
    System.Windows.Forms.DrawItemEventArgs e)
{
    // Draw the background of the ListBox control for each item.
    e.DrawBackground();
    // Define the default color of the brush as black.
    Brush myBrush = Brushes.Black;

    // Determine the color of the brush to draw each item based 
    // on the index of the item to draw.
    switch (e.Index)
    {
        case 0:
            myBrush = Brushes.Red;
            break;
        case 1:
            myBrush = Brushes.Orange;
            break;
        case 2:
            myBrush = Brushes.Purple;
            break;
    }

    // Draw the current item text based on the current Font 
    // and the custom brush settings.
    e.Graphics.DrawString(ListBox1.Items[e.Index].ToString(), 
        e.Font, myBrush, e.Bounds, StringFormat.GenericDefault);
    // If the ListBox has focus, draw a focus rectangle around the selected item.
    e.DrawFocusRectangle();
}
Private WithEvents ListBox1 As New ListBox()

Private Sub InitializeListBox() 
    ListBox1.Items.AddRange(New Object() _
        {"Red Item", "Orange Item", "Purple Item"})
    ListBox1.Location = New System.Drawing.Point(81, 69)
    ListBox1.Size = New System.Drawing.Size(120, 95)
    ListBox1.DrawMode = DrawMode.OwnerDrawFixed
    Controls.Add(ListBox1)

End Sub

Private Sub ListBox1_DrawItem(ByVal sender As Object, _
 ByVal e As System.Windows.Forms.DrawItemEventArgs) _
 Handles ListBox1.DrawItem

    ' Draw the background of the ListBox control for each item.
    e.DrawBackground()

    ' Define the default color of the brush as black.
    Dim myBrush As Brush = Brushes.Black

    ' Determine the color of the brush to draw each item based on   
    ' the index of the item to draw.
    Select Case e.Index
        Case 0
            myBrush = Brushes.Red
        Case 1
            myBrush = Brushes.Orange
        Case 2
            myBrush = Brushes.Purple
    End Select

    ' Draw the current item text based on the current 
    ' Font and the custom brush settings.
    e.Graphics.DrawString(ListBox1.Items(e.Index).ToString(), _
        e.Font, myBrush, e.Bounds, StringFormat.GenericDefault)

    ' If the ListBox has focus, draw a focus rectangle around  _ 
    ' the selected item.
    e.DrawFocusRectangle()
End Sub

Keterangan

Kejadian ini digunakan oleh pemilik yang digambar ListBox. Peristiwa hanya dinaikkan ketika DrawMode properti diatur ke DrawMode.OwnerDrawFixed atau DrawMode.OwnerDrawVariable. Anda dapat menggunakan kejadian ini untuk melakukan tugas yang diperlukan untuk menggambar item di ListBox. Jika Anda memiliki item berukuran variabel (saat DrawMode properti diatur ke DrawMode.OwnerDrawVariable), sebelum menggambar item, MeasureItem peristiwa akan dinaikkan. Anda dapat membuat penanganan aktivitas untuk MeasureItem peristiwa guna menentukan ukuran item yang akan Anda gambar di penanganan aktivitas untuk acara tersebut DrawItem .

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

Berlaku untuk

Lihat juga