方法: 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 フォーム。

  • Items プロパティに、3 つの項目が設定された ListBox1 という名前の ComboBox コントロール。 この例では、3 つの項目には、"One", Two", and Three" という名前が付けられています。 ComboBox1DrawMode プロパティには、有効な OwnerDrawVariable を設定する必要があります。

    注意

    この手法は ListBox コントロールにも適用できます。ComboBox の代わりに ListBox を使用できます。

  • System.Windows.Forms 名前空間と System.Drawing 名前空間への参照。

関連項目