方法 : 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 に設定する必要があります。

    32tzw027.alert_note(ja-jp,VS.90).gifメモ :

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

  • System.Windows.Forms 名前空間および System.Drawing 名前空間への参照。

参照

概念

組み込みのオーナー描画サポートを備えたコントロール

参照

DrawItem

DrawItemEventArgs

MeasureItem

その他の技術情報

ListBox コントロール (Windows フォーム)

ComboBox コントロール (Windows フォーム)