DrawItemEventArgs.DrawBackground Metode
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
Menggambar latar belakang dalam batas yang ditentukan dalam DrawItemEventArgs konstruktor dan dengan warna yang sesuai.
public:
virtual void DrawBackground();
public virtual void DrawBackground ();
abstract member DrawBackground : unit -> unit
override this.DrawBackground : unit -> unit
Public Overridable Sub DrawBackground ()
Contoh
Contoh berikut menunjukkan cara membuat item yang digambar ListBox pemilik. Kode menggunakan DrawMode properti untuk menentukan bahwa item yang digambar adalah ukuran tetap dan DrawItem peristiwa untuk melakukan gambar setiap item ke ListBoxdalam . Kode contoh menggunakan properti dan metode kelas yang DrawItemEventArgs diteruskan sebagai parameter ke penanganan aktivitas untuk menggambar item. Contoh ini mengasumsikan bahwa ListBox kontrol bernama listBox1
ditambahkan ke formulir dan bahwa peristiwa ditangani DrawItem oleh penanganan aktivitas yang ditentukan dalam kode contoh. Contohnya juga mengasumsikan bahwa item ditambahkan ke ListBox dengan teks "Apple", "Orange", 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
Jika item yang digambar adalah Selected, latar belakang digambar dengan teks disorot.
Catatan Bagi Inheritor
Saat mengambil alih di kelas turunan DrawBackground() , pastikan untuk memanggil DrawBackground() metode kelas dasar.