DrawMode Enumeración
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Especifica cómo se dibujan los elementos de un control.
public enum class DrawMode
public enum DrawMode
type DrawMode =
Public Enum DrawMode
- Herencia
Campos
Normal | 0 | El sistema operativo dibuja todos los elementos de un control y tienen el mismo tamaño. |
OwnerDrawFixed | 1 | Todos los elementos del control se dibujan manualmente y tienen el mismo tamaño. |
OwnerDrawVariable | 2 | Todos los elementos del control se dibujan manualmente, y pueden ser de distinto tamaño. |
Ejemplos
En el ejemplo siguiente se muestra cómo crear elementos dibujados ListBox por el propietario. El código usa la ListBox.DrawMode propiedad para especificar que los elementos dibujados tienen un tamaño fijo y el ListBox.DrawItem evento para realizar el dibujo de cada elemento en .ListBox En el ejemplo se usan las propiedades y los métodos de la DrawItemEventArgs clase que se pasan como parámetro al controlador de eventos para dibujar los elementos. En este ejemplo se supone que se ha agregado un ListBox control llamado listBox1
a un formulario y que el controlador de eventos definido en el ejemplo controla el ListBox.DrawItem evento. En el ejemplo también se supone que los elementos se han agregado a ListBox con el texto de "Apple", "Orange" y "Plum" en ese orden.
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
Comentarios
Esta enumeración la usan los miembros, como DrawMode en las ListBoxclases , CheckedListBoxy ComboBox .
Puede invalidar el dibujo de algunos controles o determinados elementos. Esta enumeración se usa para especificar si el sistema operativo dibuja un control o si su propio código controla el dibujo del control.
Nota
La CheckedListBox clase solo admite Normal
; se omiten los modos de dibujo del propietario.
Para obtener más información sobre el uso de la DrawMode
enumeración, vea los MeasureItem
eventos y DrawItem
y la ItemHeight
propiedad .