Comment : créer du texte de taille variable dans un contrôle ComboBox
Cet exemple montre un dessin personnalisé de texte dans un contrôle ComboBox. Lorsqu'un élément rencontre un certain critère, il est dessiné dans une plus grande police et mis en rouge.
Exemple
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
Compilation du code
Cet exemple nécessite les éléments suivants :
Un Windows Form.
Un contrôle ComboBox nommé ListBox1 avec trois éléments dans la propriété Items. Dans cet exemple, les trois éléments sont nommés "One", Two", and Three". La propriété DrawMode de ComboBox1 doit avoir la valeur OwnerDrawVariable.
Des références aux espaces de noms System.Windows.Forms et System.Drawing.
Voir aussi
Référence
Concepts
Contrôles avec prise en charge intégrée des dessins owner-drawn