Condividi tramite


DrawMode Enumerazione

Definizione

Specifica la modalità di disegno degli elementi di un controllo.

public enum class DrawMode
public enum DrawMode
type DrawMode = 
Public Enum DrawMode
Ereditarietà
DrawMode

Campi

Nome Valore Descrizione
Normal 0

Tutti gli elementi di un controllo vengono disegnati dal sistema operativo e hanno le stesse dimensioni.

OwnerDrawFixed 1

Tutti gli elementi del controllo vengono disegnati manualmente e hanno le stesse dimensioni.

OwnerDrawVariable 2

Tutti gli elementi del controllo vengono disegnati manualmente e possono variare in base alle dimensioni.

Esempio

Nell'esempio seguente viene illustrato come creare elementi disegnati dal ListBox proprietario. Il codice utilizza la ListBox.DrawMode proprietà per specificare che gli elementi disegnati sono di dimensioni fisse e l'evento ListBox.DrawItem per eseguire il disegno di ogni elemento in ListBox. Nell'esempio vengono utilizzate le proprietà e i metodi della DrawItemEventArgs classe passati come parametro al gestore eventi per disegnare gli elementi. In questo esempio si presuppone che un ListBox controllo chiamato listBox1 sia stato aggiunto a una maschera e che l'evento ListBox.DrawItem venga gestito dal gestore eventi definito nell'esempio. L'esempio presuppone inoltre che gli elementi siano stati aggiunti a ListBox con il testo di "Apple", "Orange" e "Plum" in tale ordine.

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

Commenti

Questa enumerazione viene usata dai membri, ad DrawMode esempio nelle ListBoxclassi , CheckedListBoxe ComboBox .

È possibile eseguire l'override del disegno di alcuni controlli o di determinati elementi. Questa enumerazione viene utilizzata per specificare se un controllo viene disegnato dal sistema operativo o se il proprio codice gestisce il disegno del controllo.

Annotazioni

La CheckedListBox classe supporta Normalsolo ; le modalità di disegno proprietario vengono ignorate.

Per altre informazioni sull'uso dell'enumerazione DrawMode , vedere gli MeasureItem eventi e DrawItem e la ItemHeight proprietà .

Si applica a

Vedi anche