Windows Forms 程式設計
HOW TO:在 ComboBox 控制項中建立各種大小的文字

這個範例示範 ComboBox 控制項中文字的自訂繪圖。當項目符合特定準則時,便會以較大的字型繪製該項目並且變成紅色。

範例

Visual Basic
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 Form。

  • 名為 ListBox1 、具有 Items 屬性中三個項目的 ComboBox 控制項。在此範例中,這三個項目名為 "One", Two", and Three" ComboBox1 DrawMode 屬性必須設定為 OwnerDrawVariable

    Note注意事項

    這項技術也適用於 ListBox 控制項 — 您可以將 ComboBox 取代為 ListBox

  • System.Windows.FormsSystem.Drawing 命名空間的參考。

請參閱

標記 :


Page view tracker