DrawMode DrawMode DrawMode DrawMode Enum

定义

指定如何绘制控件的元素。Specifies how the elements of a control are drawn.

public enum class DrawMode
public enum DrawMode
type DrawMode = 
Public Enum DrawMode
继承

字段

Normal Normal Normal Normal 0

控件中的所有元素都由操作系统绘制,并且元素大小都相等。All the elements in a control are drawn by the operating system and are of the same size.

OwnerDrawFixed OwnerDrawFixed OwnerDrawFixed OwnerDrawFixed 1

控件中的所有元素都是手动绘制的,并且元素大小都相等。All the elements in the control are drawn manually and are of the same size.

OwnerDrawVariable OwnerDrawVariable OwnerDrawVariable OwnerDrawVariable 2

控件中的所有元素都由手动绘制,元素大小可能不相等。All the elements in the control are drawn manually and can differ in size.

示例

下面的示例演示如何创建所有者描述ListBox的项。The following example demonstrates how to create owner-drawn ListBox items. 该代码使用ListBox.DrawMode属性来指定所绘制的项是固定大小的ListBox.DrawItem , 以及用于执行每个项到ListBox中的绘制的事件。The code uses the ListBox.DrawMode property to specify that the items drawn are fixed sized and the ListBox.DrawItem event to perform the drawing of each item into the ListBox. 该示例使用作为参数传递给事件处理DrawItemEventArgs程序的类的属性和方法来绘制项。The example uses the properties and methods of the DrawItemEventArgs class passed as a parameter to the event handler to draw the items. 此示例假设已将ListBox一个名listBox1为的控件添加到窗体, ListBox.DrawItem该事件由该示例中定义的事件处理程序进行处理。This example assumes that a ListBox control called listBox1 has been added to a form and that the ListBox.DrawItem event is handled by the event handler defined in the example. 该示例还假定已ListBox使用文本 "Apple"、"橙色" 和 "Plum" 将项添加到中。The example also assumes 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

注解

DrawMode枚举由ListBoxCheckedListBox、和ComboBox类中的成员使用。This enumeration is used by members such as DrawMode in the ListBox, CheckedListBox, and ComboBox classes.

您可以重写某些控件或某些元素的绘制。You can override the drawing of some controls or certain elements. 此枚举用于指定控件是由操作系统绘制, 还是由您自己的代码处理控件的绘制。This enumeration is used to specify if a control is drawn by the operating system or if your own code handles the drawing of the control.

备注

类仅支持Normal; 将忽略所有者绘图模式。 CheckedListBoxThe CheckedListBox class only supports Normal; owner draw modes are ignored.

有关使用DrawMode枚举的详细信息, MeasureItem请参阅ItemHeightDrawItem事件以及属性。For more information about using the DrawMode enumeration, see the MeasureItem and DrawItem events, and the ItemHeight property.

适用于

另请参阅