Como: Criar texto de tamanho variável em um controle ComboBox
Este exemplo demonstra o desenho personalizado do texto em um ComboBox controle. Quando um item atende a um determinados critérios, ele é desenhado em uma fonte maior e ativado vermelho.
Exemplo
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
Compilando o código
Este exemplo requer:
Um formulário do Windows.
A ComboBox controle de chamada ListBox1 com três itens na Items propriedade. Neste exemplo, os três itens são nomeados "One", Two", and Three". The DrawMode propriedade de ComboBox1 deve ser definido como OwnerDrawVariable.
Observação: Essa técnica também é aplicável para o ListBox controle — você pode substituir um ListBox para o ComboBox.
Referências à System.Windows.Forms e System.Drawing espaços para nome.
Consulte também
Conceitos
Controles com Built-in proprietário-desenho suporte