Практическое руководство. Индивидуальное форматирование строк, отображаемых в элементе управления ComboBox

Обновлен: Ноябрь 2007

Этот пример демонстрирует пользовательскую прорисовку текста в элементе управления ComboBox. Если элемент отвечает определенному условию, он прорисовывается шрифтом большего размер и красным цветом.

Пример

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

Компиляция кода

Для этого примера необходимы следующие условия.

  • Форма Windows Forms.

  • Элемент управления ComboBox с именем ListBox1 с тремя элементами в свойстве Items. В этом примере три элемента имеют имя "One", Two", and Three". СвойствоDrawMode ComboBox1 должно иметь значение OwnerDrawVariable.

    32tzw027.alert_note(ru-ru,VS.90).gifПримечание.

    Этот метод также применяется к элементу управленияListBoxListBox можно заменить на ComboBox.

  • Ссылки на пространства имен System.Windows.Forms и System.Drawing.

См. также

Основные понятия

Элементы управления Windows Forms со встроенной поддержки рисования владельцем

Ссылки

DrawItem

DrawItemEventArgs

MeasureItem

Другие ресурсы

Элемент управления ListBox (Windows Forms)

Элемент управления ComboBox (Windows Forms)