ListBox.DrawItem 이벤트

정의

소유자가 그린 ListBox의 시각적 측면이 변경될 때 발생합니다.Occurs when a visual aspect of an owner-drawn ListBox changes.

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 

예제

다음 코드 예제에서는 소유자가 그린 ListBox 항목을 만드는 방법을 보여 줍니다.The following code example demonstrates how to create owner-drawn ListBox items. 코드를 사용 하는 DrawMode 속성을 그리는 항목은 고정 된 크기 및 DrawItem 에 각 항목의 그리기를 수행 하는 이벤트를 ListBox입니다.The code uses the DrawMode property to specify that the items drawn are fixed sized and the DrawItem event to perform the drawing of each item into the ListBox. 메서드와 속성을 사용 하는 예제 코드는 DrawItemEventArgs 클래스 항목을 그릴 이벤트 처리기에 매개 변수로 전달 합니다.The example code uses the properties and methods of the DrawItemEventArgs class passed as a parameter to the event handler to draw the items. 이 예제에서는 listBox1 이라는 ListBox 컨트롤이 폼에 추가 되 고 DrawItem 이벤트가 예제 코드에 정의 된 이벤트 처리기에 의해 처리 되어야 합니다.This example requires that a ListBox control called listBox1 has been added to a form and that the DrawItem event is handled by the event handler defined in the example code. 또한이 예제에서는 "Apple", "주황색" 및 "Plum" 텍스트를 사용 하 여 ListBox에 항목을 추가 해야 합니다.The example also requires that items have been added to the ListBox with the text of "Apple", "Orange", and "Plum" in that order.

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

설명

이 이벤트는 소유자가 그린 사용한 ListBox합니다.This event is used by an owner-drawn ListBox. 이 이벤트는 DrawMode 속성이 DrawMode.OwnerDrawFixed 또는 DrawMode.OwnerDrawVariable으로 설정 된 경우에만 발생 합니다.The event is only raised when the DrawMode property is set to DrawMode.OwnerDrawFixed or DrawMode.OwnerDrawVariable. 이 이벤트를 사용 하 여 ListBox에 항목을 그리는 데 필요한 작업을 수행할 수 있습니다.You can use this event to perform the tasks needed to draw items in the ListBox. 가변 크기의 항목이 있는 경우 (DrawMode 속성이 DrawMode.OwnerDrawVariable로 설정 된 경우) 항목을 그리기 전에 MeasureItem 이벤트가 발생 합니다.If you have a variable-sized item (when the DrawMode property is set to DrawMode.OwnerDrawVariable), before drawing an item, the MeasureItem event is raised. MeasureItem 이벤트에 대 한 이벤트 처리기를 만들어 DrawItem 이벤트에 대 한 이벤트 처리기에서 그리려는 항목의 크기를 지정할 수 있습니다.You can create an event handler for the MeasureItem event to specify the size for the item that you are going to draw in your event handler for the DrawItem event.

이벤트 처리에 대한 자세한 내용은 이벤트 처리 및 발생 을 참조하십시오.For more information about handling events, see Handling and Raising Events.

적용 대상

추가 정보