Gewusst wie: Erstellen von Text mit variabler Größe in einem ComboBox-Steuerelement

Aktualisiert: November 2007

In diesem Beispiel wird das benutzerdefinierte Zeichnen von Text in einem ComboBox-Steuerelement veranschaulicht. Wenn ein Element ein bestimmtes Kriterium erfüllt, wird es in einer größeren Schriftart gezeichnet und rot dargestellt.

Beispiel

Private Sub ComboBox1_MeasureItem(ByVal sender As Object, ByVal e As _
System.Windows.Forms.MeasureItemEventArgs) Handles ComboBox1.MeasureItem
    Dim bFont As New Font("Arial", 8, FontStyle.Bold)
    Dim lFont As New Font("Arial", 12, FontStyle.Bold)
    Dim siText As SizeF

    If ComboBox1.Items().Item(e.Index) = "Two" Then
        siText = e.Graphics.MeasureString(ComboBox1.Items().Item(e.Index), _
lFont)
    Else
        siText = e.Graphics.MeasureString(ComboBox1.Items().Item(e.Index), bFont)
    End If

    e.ItemHeight = siText.Height
    e.ItemWidth = siText.Width
End Sub

Private Sub ComboBox1_DrawItem(ByVal sender As Object, ByVal e As _
System.Windows.Forms.DrawItemEventArgs) Handles ComboBox1.DrawItem
    Dim g As Graphics = e.Graphics
    Dim bFont As New Font("Arial", 8, FontStyle.Bold)
    Dim lFont As New Font("Arial", 12, FontStyle.Bold)

    If ComboBox1.Items().Item(e.Index) = "Two" Then
        g.DrawString(ComboBox1.Items.Item(e.Index), lfont, Brushes.Red, _
e.Bounds.X, e.Bounds.Y)
    Else
        g.DrawString(ComboBox1.Items.Item(e.Index), bFont, Brushes.Black, e.Bounds.X, e.Bounds.Y)
    End If
End Sub

Kompilieren des Codes

Dieses Beispiel setzt Folgendes voraus:

  • Ein Windows Form muss vorhanden sein.

  • Ein ComboBox-Steuerelement mit dem Namen ListBox1 mit drei Elementen in der Items-Eigenschaft. In diesem Beispiel lauten die drei Elemente "One", Two", and Three". Die DrawMode-Eigenschaft von ComboBox1 muss auf OwnerDrawVariable festgelegt sein.

    Hinweis:

    Diese Methode kann auch auf das ListBox-Steuerelement angewendet werden – Sie können eine ListBox für die ComboBox ersetzen.

  • Verweise auf den System.Windows.Forms-Namespace und den System.Drawing-Namespace.

Siehe auch

Konzepte

Steuerelemente mit integrierter Ownerdrawing-Unterstützung

Referenz

DrawItem

DrawItemEventArgs

MeasureItem

Weitere Ressourcen

ListBox-Steuerelement (Windows Forms)

ComboBox-Steuerelement (Windows Forms)