Show / Hide Table of Contents

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

В этом примере показано пользовательское рисование текста в 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.

  • Объект ComboBox управления с именем ListBox1 с тремя элементами в Items свойство. В этом примере имена трех элементов "One", Two", and Three". DrawMode Свойство ComboBox1 должно быть присвоено OwnerDrawVariable.

    Note

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

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

См. также

  • DrawItem
  • DrawItemEventArgs
  • MeasureItem
  • Элементы управления Windows Forms со встроенной поддержки рисования владельцем
  • Элемент управления ListBox
  • Элемент управления ComboBox
Back to top Неофициальная документация по .NET на русском языке. Лицензия: CC-BY 4.0. Основано на документации по .NET с Microsoft Docs
Generated by DocFX