方法 : ComboBox コントロールにサイズ変更可能なテキストを作成する
更新 : 2007 年 11 月
この例では、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 フォーム。
Items プロパティに 3 つの項目を持つ、 ListBox1 という名前の ComboBox コントロール。この例では、3 つの項目に "One", Two", and Three" という名前が付けられています。 ComboBox1 の DrawMode プロパティを OwnerDrawVariable に設定する必要があります。
メモ : この手法は ListBox コントロールにも適用できます。その場合は、ComboBox の代わりに ListBox を使用します。
System.Windows.Forms 名前空間および System.Drawing 名前空間への参照。