VB2005 DataGridViewに手動でコンボボックス列やチェックボックス列を作成

VB2005で,DataGridViewにDataSourceを割り当てて表示するときに,手動でコンボボックス列やチェックボックス列を作成する方法.
(DataSourceに割り当てたデーターにはIDが入っているが,IDではなくIDに対応した項目名をコンボボックスに表示したい場合など)

    Private Sub a()

        ‘グリッドに表示するデーター

        Dim dt0 As New DataTable
        dt0.Columns.Add(“項目1”, GetType(Integer))
        dt0.Columns.Add(“項目2”, GetType(Boolean))
        dt0.Columns.Add(“項目3”, GetType(String))
        dt0.Rows.Add(0, True, “あいうえお”)
        dt0.Rows.Add(1, False, “かきくけこ”)
        dt0.Rows.Add(2, True, “さしすせそ”)

       
‘項目1のコンボボックス列用データー

        Dim dt1 As New DataTable
        dt1.Columns.Add(“ID”, GetType(Integer))
        dt1.Columns.Add(“名称”, GetType(String))
        dt1.Rows.Add(0, “A”)
        dt1.Rows.Add(1, “B”)
        dt1.Rows.Add(2, “C”)

        ‘DataGridViewに手動で列作成

        With DataGridView1

            .AutoGenerateColumns = False ‘列が自動的に作成されないようにする
            .DataSource = dt0

           ‘項目1列作成(コンボボックス列)
            Dim Col_cmb1 As New DataGridViewComboBoxColumn()
            Col_cmb1.DataSource = dt1
            Col_cmb1.DisplayMember = “名称”
            Col_cmb1.ValueMember = “ID”
            Col_cmb1.DataPropertyName = “項目1”
            Col_cmb1.Name = “項目1”
            Col_cmb1.DisplayStyleForCurrentCellOnly = True ‘カレントセルのみコンボボックスを表示する
            ‘Col_cmb1.DisplayStyle = DataGridViewComboBoxDisplayStyle.Nothing ‘編集時のみコンボボックスを表示する
            .Columns.Add(Col_cmb1)

            ‘項目2列作成(チェックボックス列)
            Dim Col_chk1 As DataGridViewCheckBoxColumn = New DataGridViewCheckBoxColumn()
            Col_chk1.DataPropertyName = “項目2”
            Col_chk1.Name = “項目2”
            ‘Col_chk1.ThreeState = True ‘3種類のチェック状態(中間状態)を表示する場合
            .Columns.Add(Col_chk1)

            ‘項目3列作成(テキストボックス列)
            Dim Col_txt1 As DataGridViewColumn = New DataGridViewTextBoxColumn()
            Col_txt1.DataPropertyName = “項目3”
            Col_txt1.Name = “項目3”
            .Columns.Add(Col_txt1)

            ‘.AutoResizeColumns()

        End With

    End Sub

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です