DrawMode Enumerazione
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Specifica le modalità di disegno degli elementi di un controllo.
public enum class DrawMode
public enum DrawMode
type DrawMode =
Public Enum DrawMode
- Ereditarietà
Campi
Nome | Valore | Descrizione |
---|---|---|
Normal | 0 | Tutti gli elementi di un controllo vengono disegnati dal sistema operativo con identiche dimensioni. |
OwnerDrawFixed | 1 | Tutti gli elementi di un controllo vengono disegnati manualmente con identiche dimensioni. |
OwnerDrawVariable | 2 | Tutti gli elementi del controllo vengono disegnati manualmente e possono avere dimensioni differenti. |
Esempio
Nell'esempio seguente viene illustrato come creare elementi di disegno ListBox del proprietario. Il codice usa 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 nell'oggetto ListBox. Nell'esempio vengono usate 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 denominato listBox1
sia stato aggiunto a un modulo e che l'evento ListBox.DrawItem venga gestito dal gestore eventi definito nell'esempio. L'esempio presuppone anche che gli elementi siano stati aggiunti al 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 usata per specificare se un controllo viene disegnato dal sistema operativo o se il proprio codice gestisce il disegno del controllo.
Nota
La CheckedListBox classe supporta Normal
solo le modalità di disegno del proprietario vengono ignorate.
Per altre informazioni sull'uso dell'enumerazione DrawMode
, vedere gli MeasureItem
eventi e DrawItem
e la ItemHeight
proprietà.