다음을 통해 공유


DrawMode 열거형

정의

컨트롤 요소를 그리는 방법을 지정합니다.

public enum class DrawMode
public enum DrawMode
type DrawMode = 
Public Enum DrawMode
상속
DrawMode

필드

Normal 0

컨트롤에 있는 모든 요소는 운영 체제에 의해 그려지며 요소의 크기는 모두 동일합니다.

OwnerDrawFixed 1

컨트롤에 있는 모든 요소는 수동으로 그려지며 요소의 크기는 모두 동일합니다.

OwnerDrawVariable 2

컨트롤에 있는 모든 요소는 수동으로 그려지며 요소의 크기는 서로 다를 수 있습니다.

예제

다음 예제에는 소유자가 그린 만드는 방법을 보여 줍니다 ListBox 항목입니다. 코드를 사용 하는 ListBox.DrawMode 속성을 그리는 항목은 고정 된 크기 및 ListBox.DrawItem 에 각 항목의 그리기를 수행 하는 이벤트를 ListBox입니다. 이 예제에서는 이벤트 처리기에 매개 변수로 전달된 클래스의 DrawItemEventArgs 속성과 메서드를 사용하여 항목을 그립니다. 이 예제에서는 라는 listBox1 컨트롤이 ListBoxListBox.DrawItem 에 추가되었으며 이벤트가 예제에 정의된 이벤트 처리기에 의해 처리된다고 가정합니다. 이 예제에서는 항목에 추가 된는 또한 가정는 ListBox 순서로 "Apple", "주황색" 및 "진한 보라" 텍스트를 사용 하 여 합니다.

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

설명

이 열거형 멤버와 같은 사용 됩니다 DrawModeListBoxCheckedListBox, 및 ComboBox 클래스입니다.

일부 컨트롤의 특정 요소 그리기를 재정의할 수 있습니다. 이 열거형은 운영 체제에서 컨트롤을 그릴 경우 또는 사용자 고유의 코드 컨트롤의 그리기를 처리 하는 경우를 지정 하려면 사용 합니다.

참고

클래스는 CheckedListBox 만 지원합니다. Normal소유자 그리기 모드는 무시됩니다.

사용에 대 한 자세한 내용은 DrawMode 열거형을 참조 합니다 MeasureItemDrawItem 이벤트 및 ItemHeight 속성.

적용 대상

추가 정보