このページをはてなブックマークに追加このページを含むはてなブックマーク このページをlivedoor クリップに追加このページを含むlivedoor クリップ

*目次 [#rfead9ac]

#contents


*先頭項目を表示する [#g1362016]

 ComboBox1.Items.Add("security")
 ComboBox1.SelectedIndex = 0


*コンボボックス内を編集できなくさせる [#b21effd2]

 DropDownStyleプロパティをDropDownListにする。

*表示されるものと対応あるデータを持たせる [#t1e12292]

-http://natchan-develop.seesaa.net/article/18549404.html

*ドロップダウンリストに表示される各項目の背景色を制御する [#nf2c45e6]

↓オーナードロー利用によりComboBoxの描画

#code(vb){{
    Private Sub ComboBox1_DrawItem(ByVal sender As System.Object, _
                                  ByVal e As System.Windows.Forms.DrawItemEventArgs) _
                                  Handles cmbFiles.DrawItem
        If e.Index = -1 Then Exit Sub

        Dim combo As ComboBox = sender
        Dim textBrush As Brush = If(DirectCast(combo.Items(e.Index), [ComboBoxに登録するアイテムの型]).IsXXX, _
                                    Brushes.BlueViolet, Brushes.Black)
        Dim text As String = combo.Items(e.Index).ToString

        Dim textRect As RectangleF  '文字領域の設定
        With textRect
            .X = e.Bounds.X
            .Y = e.Bounds.Y
            .Width = e.Bounds.Width
            .Height = e.Bounds.Height
        End With

        e.DrawBackground()      'フォーカス背景色描画用
        e.Graphics.DrawString(text, e.Font, textBrush, textRect)  '文字の描画
        e.DrawFocusRectangle()  'フォーカス背景色描画用
    End Sub

}}

↓ComboBoxに登録するデータオブジェクト

#code(vb){{
Public Class Item
    Private name_ As String
    Private isXXX_ As Boolean

    Public Sub New(ByVal name As String, ByVal isXXX As Boolean)
        name_ = name
        isXXX_ = isXXX
    End Sub

    Public ReadOnly Property Name() As String
        Get
            Return name_
        End Get
    End Property

    Public ReadOnly Property IsXXX() As Boolean
        Get
            Return isXXX_
        End Get
    End Property

    Public Overrides Function ToString() As String
        Return name_
    End Function
End Class

}}