다음을 통해 공유


DrawMode 열거형

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

네임스페이스: System.Windows.Forms
어셈블리: System.Windows.Forms(system.windows.forms.dll)

구문

‘선언
Public Enumeration DrawMode
‘사용 방법
Dim instance As DrawMode
public enum DrawMode
public enum class DrawMode
public enum DrawMode
public enum DrawMode

멤버

  멤버 이름 설명
Normal 컨트롤에 있는 모든 요소는 운영 체제에 의해 그려지며 요소의 크기는 모두 동일합니다. 
OwnerDrawFixed 컨트롤에 있는 모든 요소는 수동으로 그려지며 요소의 크기는 모두 동일합니다. 
OwnerDrawVariable 컨트롤에 있는 모든 요소는 수동으로 그려지며 요소의 크기는 서로 다를 수 있습니다. 

설명

이 열거형은 ListBox, CheckedListBoxComboBox 클래스의 DrawMode와 같은 멤버에서 사용합니다.

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

참고

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

DrawMode 열거형 사용에 대한 자세한 내용은 MeasureItemDrawItem 이벤트와 ItemHeight 속성을 참조하십시오.

예제

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

Private Sub listBox1_DrawItem(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DrawItemEventArgs) Handles ListBox1.DrawItem
   ' Set the DrawMode property to draw fixed sized items.
   ListBox1.DrawMode = DrawMode.OwnerDrawFixed
   ' 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

   ' 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), e.Font, myBrush, New RectangleF(e.Bounds.X, e.Bounds.Y, e.Bounds.Width, e.Bounds.Height))
   ' If the ListBox has focus, draw a focus rectangle around the selected item.
   e.DrawFocusRectangle()
End Sub
private void listBox1_DrawItem(object sender, System.Windows.Forms.DrawItemEventArgs e)
{
   // Set the DrawMode property to draw fixed sized items.
   listBox1.DrawMode = DrawMode.OwnerDrawFixed;
   // 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:
   void listBox1_DrawItem( Object^ /*sender*/, System::Windows::Forms::DrawItemEventArgs^ e )
   {
      // Set the DrawMode property to draw fixed sized items.
      listBox1->DrawMode = DrawMode::OwnerDrawFixed;

      // 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 void listBox1_DrawItem(Object sender,
    System.Windows.Forms.DrawItemEventArgs e)
{
    // Set the DrawMode property to draw fixed sized items.
    listBox1.set_DrawMode(DrawMode.OwnerDrawFixed);
    // Draw the background of the ListBox control for each item.
    e.DrawBackground();
    // Create a new Brush and initialize to a Black colored brush
    // by default.
    Brush myBrush = Brushes.get_Black();
    // Determine the color of the brush to draw each item based on the
    // index of the item to draw.
    switch (e.get_Index()) {
        case 0 :
            myBrush = Brushes.get_Red();
            break;
        case 1 :
            myBrush = Brushes.get_Orange();
            break;
        case 2 :
            myBrush = Brushes.get_Purple();
            break;
    }

    // Draw the current item text based on the current Font and the custom
    // brush settings.
    e.get_Graphics().DrawString(System.Convert.ToString(listBox1.
        get_Items().get_Item(e.get_Index())), e.get_Font(), myBrush,
        RectangleF.op_Implicit(e.get_Bounds()), StringFormat.
        get_GenericDefault());
    // If the ListBox has focus, draw a focus rectangle around the selected
    // item.
    e.DrawFocusRectangle();
} //listBox1_DrawItem

플랫폼

Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile for Pocket PC, Windows Mobile for Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition

.NET Framework에서 모든 플래폼의 모든 버전을 지원하지는 않습니다. 지원되는 버전의 목록은 시스템 요구 사항을 참조하십시오.

버전 정보

.NET Framework

2.0, 1.1, 1.0에서 지원

참고 항목

참조

System.Windows.Forms 네임스페이스
ListBox
CheckedListBox 클래스
ComboBox 클래스