Esta documentación está archivada y no tiene mantenimiento.

DrawMode (Enumeración)

Especifica cómo se dibujan los elementos de un control.

Espacio de nombres: System.Windows.Forms
Ensamblado: System.Windows.Forms (en system.windows.forms.dll)

public enum DrawMode
public enum DrawMode
public enum DrawMode

 Nombre de miembroDescripción
NormalEl sistema operativo dibuja todos los elementos de un control y tienen el mismo tamaño. 
OwnerDrawFixedTodos los elementos del control se dibujan manualmente y tienen el mismo tamaño. 
OwnerDrawVariableTodos los elementos del control se dibujan manualmente, y pueden ser de distinto tamaño. 

Utilizan esta enumeración miembros como DrawMode en las clases ListBox, CheckedListBox y ComboBox.

Se puede reemplazar el dibujo de algunos controles o de ciertos elementos. Esta enumeración se emplea para especificar si el sistema operativo dibuja un control o si es el propio código el que controla el dibujado del control.

NotaNota:

La clase CheckedListBox sólo admite DrawMode.Normal; los modos de dibujo propietarios se pasan por alto.

Para obtener más información sobre cómo utilizar la enumeración DrawMode, vea los eventos MeasureItem y DrawItem, y la propiedad ItemHeight.

En el siguiente ejemplo se muestra la forma de crear elementos ListBox dibujados por el propietario. En el código se utiliza la propiedad DrawMode para especificar que los elementos dibujados tengan un tamaño fijo y que el evento DrawItem realice el dibujo de cada uno de los elementos en ListBox. En el código de ejemplo se utilizan las propiedades y los métodos de la clase DrawItemEventArgs que se ha pasado como parámetro al controlador de eventos para dibujar los elementos. En este ejemplo se supone que se ha agregado un control ListBox denominado listBox1 a un formulario y que el controlador de eventos definido en el código de ejemplo controla el evento DrawItem. En el ejemplo se supone también que se han agregado elementos a ListBox con el texto "Apple", "Orange" y "Plum", en ese orden.

private void listBox1_DrawItem(object sender, System.Windows.Forms.DrawItemEventArgs e)
{
   // Set the DrawMode property to draw fixed sized items.
   listBox1.DrawMode = DrawMode.OwnerDrawFixed;
   // 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 void listBox1_DrawItem(Object sender,
    System.Windows.Forms.DrawItemEventArgs e)
{
    // Set the DrawMode property to draw fixed sized items.
    listBox1.set_DrawMode(DrawMode.OwnerDrawFixed);
    // Draw the background of the ListBox control for each item.
    e.DrawBackground();
    // Create a new Brush and initialize to a Black colored brush
    // by default.
    Brush myBrush = Brushes.get_Black();
    // Determine the color of the brush to draw each item based on the
    // index of the item to draw.
    switch (e.get_Index()) {
        case 0 :
            myBrush = Brushes.get_Red();
            break;
        case 1 :
            myBrush = Brushes.get_Orange();
            break;
        case 2 :
            myBrush = Brushes.get_Purple();
            break;
    }

    // Draw the current item text based on the current Font and the custom
    // brush settings.
    e.get_Graphics().DrawString(System.Convert.ToString(listBox1.
        get_Items().get_Item(e.get_Index())), e.get_Font(), myBrush,
        RectangleF.op_Implicit(e.get_Bounds()), StringFormat.
        get_GenericDefault());
    // If the ListBox has focus, draw a focus rectangle around the selected
    // item.
    e.DrawFocusRectangle();
} //listBox1_DrawItem

Windows 98, Windows 2000 Service Pack 4, Windows CE, Windows Millennium, Windows Mobile para Pocket PC, Windows Mobile para Smartphone, Windows Server 2003, Windows XP Media Center, Windows XP Professional x64, Windows XP SP2, Windows XP Starter

Microsoft .NET Framework 3.0 es compatible con Windows Vista, Microsoft Windows XP SP2 y Windows Server 2003 SP1.

.NET Framework

Compatible con: 3.0, 2.0, 1.1, 1.0
Mostrar: