次の方法で共有


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

注釈

この列挙は、および ComboBox クラスの などのDrawModeListBoxCheckedListBoxメンバーによって使用されます。

一部のコントロールまたは特定の要素の描画をオーバーライドできます。 この列挙は、コントロールがオペレーティング システムによって描画されるか、独自のコードがコントロールの描画を処理するかを指定するために使用されます。

注意

クラスは CheckedListBox のみをサポートします Normal。所有者描画モードは無視されます。

列挙体の使用方法のDrawMode詳細については、 イベントと DrawItem プロパティにMeasureItem関するページをItemHeight参照してください。

適用対象

こちらもご覧ください