DrawItemEventArgs.DrawBackground 메서드

정의

DrawItemEventArgs 생성자에 지정된 경계 내에 해당 색으로 배경을 그립니다.

public:
 virtual void DrawBackground();
public virtual void DrawBackground ();
abstract member DrawBackground : unit -> unit
override this.DrawBackground : unit -> unit
Public Overridable Sub DrawBackground ()

예제

다음 예제에는 소유자가 그린 만드는 방법을 보여 줍니다 ListBox 항목입니다. 코드는 속성을 사용하여 DrawMode 그려진 항목이 고정 크기이고 DrawItem 이벤트가 각 항목 ListBox의 그리기를 수행하도록 지정합니다. 메서드와 속성을 사용 하는 예제 코드는 DrawItemEventArgs 클래스 항목을 그릴 이벤트 처리기에 매개 변수로 전달 합니다. 이 예제에서는 명명 listBox1ListBox 컨트롤이 폼 DrawItem 에 추가되었고 예제 코드에 정의된 이벤트 처리기에서 이벤트를 처리한다고 가정합니다. 또한 이 예제에서는 항목이 "Apple", "Orange" 및 "Plum" 텍스트와 함께 해당 순서대로 추가 ListBox 되었다고 가정합니다.

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

설명

그리는 항목이 Selected있으면 텍스트가 강조 표시된 배경이 그려집니다.

상속자 참고

파생 클래스에서 재정의하는 DrawBackground() 경우 기본 클래스의 메서드를 DrawBackground() 호출해야 합니다.

적용 대상

추가 정보