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, CheckedListBox 및 ComboBox 클래스의 DrawMode와 같은 멤버에서 사용합니다.
특정 요소나 일부 컨트롤의 그리기를 재정의할 수 있습니다. 이 열거형은 운영 체제에서 컨트롤을 그릴지 또는 사용자의 코드에서 컨트롤 그리기를 처리할지 여부를 지정하는 데 사용됩니다.
참고
CheckedListBox 클래스는 DrawMode.Normal만 지원하며 소유자 그리기 모드는 무시됩니다.
DrawMode 열거형 사용에 대한 자세한 내용은 MeasureItem 및 DrawItem 이벤트와 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 클래스