DataGridViewコントロールの列にコンボボックスを設定する

グリッドの列をコンボボックスにするにはDataGridViewComboBoxColumnクラスを使用する。


Public Class Form1
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        '直接設定する方法
        Dim col0 As New DataGridViewComboBoxColumn

        For i As Integer = 1 To 12
            col0.Items.Add(i.ToString & "月")
        Next

        DataGridView1.Columns.Add(col0)

        'DataSourceプロパティを使用した方法
        Dim col1 As New DataGridViewComboBoxColumn
        Dim dt As New DataTable

        dt.Columns.Add("Value", GetType(Integer))
        dt.Columns.Add("Display", GetType(String))

        For i As Integer = 1 To 31
            dt.Rows.Add(i, i.ToString & "日")
        Next

        col1.DataSource = dt
        col1.ValueMember = "Value"
        col1.DisplayMember = "Display"

        DataGridView1.Columns.Add(col1)
    End Sub
End Class