Freigeben über


DrawMode-Enumeration

Gibt an, wie die in einem Steuerelement enthaltenen Elemente gezeichnet werden.

Namespace: System.Windows.Forms
Assembly: System.Windows.Forms (in system.windows.forms.dll)

Syntax

'Declaration
Public Enumeration DrawMode
'Usage
Dim instance As DrawMode
public enum DrawMode
public enum class DrawMode
public enum DrawMode
public enum DrawMode

Member

  Membername Beschreibung
Normal Alle Elemente in einem Steuerelement werden vom Betriebssystem und in derselben Größe gezeichnet. 
OwnerDrawFixed Alle Elemente in einem Steuerelement werden manuell und in derselben Größe gezeichnet. 
OwnerDrawVariable Alle Elemente in einem Steuerelement werden manuell gezeichnet und können in der Größe voneinander abweichen. 

Hinweise

Diese Enumeration wird von Membern wie DrawMode in der ListBox-Klasse, der CheckedListBox-Klasse und der ComboBox-Klasse verwendet.

Sie können das Zeichnen einiger Steuerelemente oder bestimmter Elemente überschreiben. Mit dieser Enumeration wird festgelegt, ob ein Steuerelement vom Betriebssystem oder durch eigenen Code gezeichnet wird.

Hinweis

Die CheckedListBox-Klasse unterstützt nur DrawMode.Normal. Zeichenmodi mit Besitzerzeichnung werden ignoriert.

Weitere Informationen über das Verwenden der DrawMode-Enumeration finden Sie unter den Ereignissen MeasureItem und DrawItem sowie unter der ItemHeight-Eigenschaft.

Beispiel

Im folgenden Beispiel wird das Erstellen von ownerdrawn-ListBox-Elementen veranschaulicht. Mit der DrawMode-Eigenschaft gibt der Code an, dass die gezeichneten Elemente eine feste Größe besitzen, und durch das DrawItem-Ereignis zeichnet der Code jedes Element in der ListBox. Der Beispielcode zeichnet die Elemente mithilfe der Eigenschaften und Methoden der DrawItemEventArgs-Klasse, die als Parameter an den Ereignishandler übergeben wurde. In diesem Beispiel wird angenommen, dass einem Formular ein ListBox-Steuerelement mit dem Namen listBox1 hinzugefügt wurde und das DrawItem-Ereignis vom im Beispielcode definierten Ereignishandler behandelt wird. Im Beispiel wird außerdem angenommen, dass Elemente der ListBox hinzugefügt wurden, wobei der Text "Apple", "Orange" und "Plum" in dieser Reihenfolge ist.

Private Sub listBox1_DrawItem(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DrawItemEventArgs) Handles ListBox1.DrawItem
   ' 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.
   Dim myBrush As Brush

   ' 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), e.Font, myBrush, New RectangleF(e.Bounds.X, e.Bounds.Y, e.Bounds.Width, e.Bounds.Height))
   ' If the ListBox has focus, draw a focus rectangle around the selected item.
   e.DrawFocusRectangle()
End Sub
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->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

Plattformen

Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile für Pocket PC, Windows Mobile für Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition

.NET Framework unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen.

Versionsinformationen

.NET Framework

Unterstützt in: 2.0, 1.1, 1.0

Siehe auch

Referenz

System.Windows.Forms-Namespace
ListBox
CheckedListBox-Klasse
ComboBox-Klasse