VB.NET DataGridView コンボボックス チェックボックス

VB.NETで、明細を表示したい時には、DataGridViewと呼ばれるコントロールを使用します。
今回は、DataGridViewのセルの型についてまとめていきたいと思います。

 

DataGridViewの型

DataGridViewの列追加

DataGridViewの列を追加する方法を紹介します。
列を追加するには、このように書くことで追加することができます。

DataGridView.Columns.Add(カラム型)

 

列を追加する時に、テキストボックス型、チェックボックス型など型を選べます。
今回はよく使う、テキストボックス型、チェックボックス型、コンボボックス型の3つの型の追加方法を紹介します。

1テキストボックス型

まずはテキストボックス型の紹介から行います。
例を基にみていきましょう。

Dim colName As New DataGridViewTextBoxColumn()
colName.Name = "name"
colName.HeaderText = "名前"
colName.Width = 100
dgvDetail.Columns.Add(colName)

 

解説をします。
1~4行目:列を追加する前に、どのような列の情報を追加するのか記載する必要があります。
1行目 :テキスト型の列を作成
2行目 :名称の設定
3行目 :明細のヘッダーの表示名の設定
4行目 :列の幅の設定
5行目 :1~4で設定した列の追加

DataGridViewTextBoxColumn型のデータを作成し、DataGridView.Columns.Add(カラム型)をすることで作成できます。
DataGridViewTextBoxColumn()は、DataGridViewの列にテキスト型を配置することができます。

 

 

今回は、名前という列を追加されていることが確認できました。

 

2コンボボックス型

続いてコンボボックス型を見てみましょう。

Dim colCombo As New DataGridViewComboBoxColumn
colCombo.Name = "animal"
colCombo.HeaderText = "動物"
colCombo.Width = "100"
colCombo.Items.Add("")
colCombo.Items.Add("きりん")
colCombo.Items.Add("いぬ")
colCombo.Items.Add("ねこ")
colCombo.Items.Add("ぞう")
dgvDetail.Columns.Add(colCombo)

解説
1~4行目:テキスト型と同じように列の情報を記載
1行目 :コンボボックス型の列を作成
2行目 :名称の設定
3行目 :明細のヘッダーの表示名の設定
4行目 :列の幅の設定
5~9行目:コンボボックスに表示するデータを追加
10行目 :列の追加

動物というコンボボックスが作成されていることが確認できました。
また、中身についても「きりん」「いぬ」「ねこ」「ぞう」と指定した値が表示されています。

 

3チェックボックス型

最後にチェックボックス型を見てみましょう。

Dim colCheck As New DataGridViewCheckBoxColumn
colCheck.Name = "select"
colCheck.HeaderText = "選択"
colCheck.Width = 20
dgvDetail.Columns.Add(colCheck)

解説
1~4行目:テキスト型と同じように列の情報を記載
1行目 :チェックボックス型の列を作成
2行目 :名称の設定
3行目 :明細のヘッダーの表示名の設定
4行目 :列の幅の設定
5行目 :列の追加

選択というチェックボックスが作成されました。

DataGridViewの行追加

列の追加ができるようになったので、続いて行の追加をしてみましょう。
先ほど紹介した3つの型の列を元に行を追加してみましょう。

dgvDetail.Rows.Add()

これで行を追加できます。

行追加ができていることが確認できました。

 

追加したデータが2行になっているのが気になる人は、
DataGridViewのプロパティのAllowUserToAddRowsという設定をFlaseに変更しましょう。
AllowUserToAddRowsがTrueになっていると、新しい行を自動で作成されてしまいます。
ソースで記載する場合は、このようになります。

dgvDetail.AllowUserToAddRows = False

デザインのプロパティからも変更できます。

追加した行に値を設定

追加した行に値を設定する方法を見てみましょう。

DataGridView.Rows(行数).Cells("名前").Value = 設定したい値

例を載せておきます。

dgvDetail.Rows(0).Cells("select").Value = True
dgvDetail.Rows(0).Cells("name").Value = "鈴木"
dgvDetail.Rows(0).Cells(2).Value = "きりん"

解説
1行目:データグリッドビューの1行目(0から始まる)の"select"という名称の値をTrueに変更 ※チェックボックスはTrue False
2行目:1行目と同様で、値を"鈴木に変更"
3行目:Cellsの部分も列のインデックスで記載することができます。(3列目ですが、0から始まるので2)
コンボボックスで追加したItemしか指定できないので注意してください。

 

DataGridView 列全削除

列を一括クリアする方法を紹介します。

DataGridView.Columns.Clear()

明細を初期化したい時などに使用します。

 

DataGridView 指定した行もしくは列の削除

指定した行数もしくは列数を削除するには、RemoveAtを使用します。

DataGridView.Rows.RemoveAt(行Index)
DataGridView.Columns.RemoveAt(列Index)

解説
1行目:行の削除
2行目:列の削除

 

DataTableの値をそのまま明細に表示

DataTableの値をそのまま明細に表示する方法は前回記事にまとめていますので、是非参考にしてください。

 

サンプルソース

サンプルソースを載せておきます。

Public Class Form2
    Private Sub Form2_Load(sender As Object, e As EventArgs) Handles MyBase.Load

        dgvDetail.AllowUserToAddRows = False

        Dim colCheck As New DataGridViewCheckBoxColumn
        colCheck.Name = "select"
        colCheck.HeaderText = "選択"
        colCheck.Width = 20

        Dim colName As New DataGridViewTextBoxColumn()
        colName.Name = "name"
        colName.HeaderText = "名前"
        colName.Width = 100

        Dim colCombo As New DataGridViewComboBoxColumn
        colCombo.Name = "animal"
        colCombo.HeaderText = "動物"
        colCombo.Width = "100"
        colCombo.Items.Add("")
        colCombo.Items.Add("きりん")
        colCombo.Items.Add("いぬ")
        colCombo.Items.Add("ねこ")
        colCombo.Items.Add("ぞう")

        dgvDetail.Columns.Add(colCheck)
        dgvDetail.Columns.Add(colName)
        dgvDetail.Columns.Add(colCombo)

        dgvDetail.Rows.Add()
        dgvDetail.Rows(0).Cells("select").Value = True
        dgvDetail.Rows(0).Cells("name").Value = "鈴木"
        dgvDetail.Rows(0).Cells(2).Value = "きりん"

        dgvDetail.Rows.Add()
        dgvDetail.Rows(1).Cells("select").Value = False
        dgvDetail.Rows(1).Cells("name").Value = "あおき"
        dgvDetail.Rows(1).Cells("animal").Value = "ねこ"

    End Sub
End Class

 

まとめ

今回は、DataGridViewのセルの型をテキストボックス、コンボボックス、チェックボックスに設定する方法を紹介しました。

この3つの型は、よく使うので是非参考にしてください。

 

VB.NETの記事一覧

おすすめの記事