ListBox.OnDrawItem(DrawItemEventArgs) Yöntem
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
Olayı tetikler DrawItem .
protected:
virtual void OnDrawItem(System::Windows::Forms::DrawItemEventArgs ^ e);
protected virtual void OnDrawItem(System.Windows.Forms.DrawItemEventArgs e);
abstract member OnDrawItem : System.Windows.Forms.DrawItemEventArgs -> unit
override this.OnDrawItem : System.Windows.Forms.DrawItemEventArgs -> unit
Protected Overridable Sub OnDrawItem (e As DrawItemEventArgs)
Parametreler
DrawItemEventArgs Olay verilerini içeren bir.
Örnekler
Aşağıdaki kod örneğinde sahip tarafından çizilmiş ListBox öğelerin nasıl oluşturulacağı gösterilmektedir. Kod, çizilen öğelerin sabit boyutlu olduğunu ve DrawItem her öğenin ListBoxiçine çizimini gerçekleştirmek için olayı belirtmek için özelliğini kullanırDrawMode. Örnek kod, öğeleri çizmek için olay işleyicisine parametre olarak geçirilen sınıfın özelliklerini ve yöntemlerini DrawItemEventArgs kullanır. Bu örnek, adlı listBox1 bir ListBox denetimin forma eklenmesini ve DrawItem olayın örnek kodda tanımlanan olay işleyicisi tarafından işlenmesini gerektirir. Örnek ayrıca öğesine "Apple", "Orange" ve "Plum" metinleriyle birlikte bu sırayla öğelerin eklenmesini ListBox gerektirir.
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
Açıklamalar
Olay oluşturmak, bir temsilci aracılığıyla olay işleyicisini çağırır. Daha fazla bilgi için bkz. Olayları İşleme ve Oluşturma.
yöntemi, OnDrawItem türetilmiş sınıfların bir temsilci eklemeden olayı işlemesini de sağlar. Bu, türetilmiş bir sınıfta olayı işlemek için tercih edilen tekniktir.
Devralanlara Notlar
Türetilmiş bir sınıfta geçersiz kılma OnDrawItem(DrawItemEventArgs) sırasında, kayıtlı temsilcilerin olayı alması için temel sınıfın OnDrawItem(DrawItemEventArgs) yöntemini çağırdığınızdan emin olun.