データグリッドビュー [カスタマイズ]

Visual Basic ADO.NET [Community Express]

様々なデータグリッドビューを作成

データグリッドビュー列をカスタマイズすることによって、様々なデータグリッドビューを作成することができます。

カスタム列を生成・追加するサンプルプログラム

データグリッドビュー列のカスタマイズは、フォームのプロパティによる設定は最小限にし、Subプロシージャを作成して、フォームロードから呼び出して、カスタマイズします。

受注エントリー画面

まず、列を自動生成しないようにし、列幅は自動調整に設定します。そして、表示する列数分だけカスタム列を生成し、次のように各列をカスタマイズします。

  • 【表示するデータの設定】データソースにバインドする明細リストのプロパティをセット
  • 列タイトルを設定
  • 【数値データの書式設定】3桁カンマの右寄せにするために、カスタム数式書式を設定

作成した列をデータグリッドビューに追加します。

最後に、バインディングソース(BindingSource)を使って、明細行リストと連結します。

ソースリストの枠内をクリックすると全選択できます。

    '*******************************************************
    ' 受注明細データグリッドビュー初期化
    '*******************************************************
    Sub InitialDgvMeisai()

        Try
            '--- <<データグリッドビューDgvOrderの列スタイル >>---
            ' 列を自動生成しない
            DgvMeisai.AutoGenerateColumns = False
            ' 列幅を自動調整
            DgvMeisai.AutoSizeColumnsMode = _
                DataGridViewAutoSizeColumnsMode.AllCells
            ' テキストボックス列の生成
            Dim textColumn(4) As DataGridViewTextBoxColumn

            ' 【商品コード】列を作成する
            textColumn(0) = New DataGridViewTextBoxColumn()
            ' データソース項目とバインド
            textColumn(0).DataPropertyName = "ShohinCode"
            ' DataGridViewのヘッダータイトル設定
            textColumn(0).HeaderText = "商品コード"

            ' 【商品名】列を作成する
            textColumn(1) = New DataGridViewTextBoxColumn()
            ' データソース項目とバインド
            textColumn(1).DataPropertyName = "ShohinMeisho"
            ' DataGridViewのヘッダータイトル設定
            textColumn(1).HeaderText = "商品名"

            ' 【受注数量】列を作成する
            textColumn(2) = New DataGridViewTextBoxColumn()
            ' データソース項目とバインド
            textColumn(2).DataPropertyName = "JuchuSuryo"
            ' DataGridViewのヘッダータイトル設定
            textColumn(2).HeaderText = "数量"
            ' DataGridViewセルの文字列右詰め設定
            textColumn(2).DefaultCellStyle.Alignment = _
                DataGridViewContentAlignment.MiddleRight

            ' 【受注単価】列を作成する
            textColumn(3) = New DataGridViewTextBoxColumn()
            ' データソース項目とバインド
            textColumn(3).DataPropertyName = "JuchuTanka"
            ' DataGridViewのヘッダータイトル設定
            textColumn(3).HeaderText = "単価"
            ' DataGridViewセルの文字列右詰め設定
            textColumn(3).DefaultCellStyle.Alignment = _
                DataGridViewContentAlignment.MiddleRight
            ' DataGridViewセルの書式設定
            textColumn(3).DefaultCellStyle.Format = "#,##0"

            ' 【受注金額】列を作成する
            textColumn(4) = New DataGridViewTextBoxColumn()
            ' データソース項目とバインド
            textColumn(4).DataPropertyName = "JuchuKingaku"
            ' DataGridViewのヘッダータイトル設定
            textColumn(4).HeaderText = "金額"
            ' DataGridViewセルの文字列右詰め設定
            textColumn(4).DefaultCellStyle.Alignment = _
                DataGridViewContentAlignment.MiddleRight
            ' DataGridViewセルの書式設定
            textColumn(4).DefaultCellStyle.Format = "#,##0"

            ' 生成列を追加する
            DgvMeisai.Columns.AddRange(textColumn)
            ' BindingSource:データ連結設定
            bindingSrc.DataSource = meisaiList
            DgvMeisai.DataSource = bindingSrc

        Catch ex As Exception
            ' 例外が発生した時の処理
            MessageBox.Show(ex.ToString, "FormLoadで例外発生")
        End Try

    End Sub