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 類別屬性和方法,來繪製專案。 本範例假設 ListBox 已將稱為 listBox1 的控制項新增至表單,而且 ListBox.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

備註

這個列舉是由 、 CheckedListBoxComboBox 類別等 ListBox 成員 DrawMode 使用。

您可以覆寫某些控制項或特定專案的繪圖。 這個列舉是用來指定作業系統所繪製的控制項,或您自己的程式碼是否處理控制項的繪圖。

注意

類別 CheckedListBox 僅支援 Normal ;會忽略擁有者繪製模式。

如需使用 DrawMode 列舉的詳細資訊,請參閱 MeasureItemDrawItem 事件和 ItemHeight 屬性。

適用於

另請參閱