[C#][VB.NET]データグリッドビューの列(カラム)をデザイナを使用せずコードで追加する

DataGridViewにColumnを追加する手順の解説とサンプルコードです。Columnオブジェクトを生成し、ヘッダーテキスト・列の表示非表示・編集可否・列幅の変更可否を設定してDataGridViewに追加します。

サンプルコード

解説はサンプルコードの後に示します。

解説

  1. DataGridViewColumnオブジェクトを生成

    作成したいセルの表示内容に合わせて、DataGridViewColumnオブジェクトを生成します。 標準で用意されているDataGridViewColumnオブジェクトは次のとおりです。
    DataGridViewColumnオブジェクト セルの表示内容
    DataGridViewButtonColumn ボタン
    DataGridViewCheckBoxColumn チェックボックス
    DataGridViewComboBoxColumn コンボボックス
    DataGridViewImageColumn 画像
    DataGridViewLinkColumn ハイパーリンク
    DataGridViewTextBoxColumn テキストボックス
  2. セルに表示するデータソースの指定

    DataTableの内容を表示するのであればDataRowの列名(テーブルの列名)、独自クラスのリストであればプロパティ名を指定します。
  3. ヘッダーのテキスト

    ヘッダーに表示する文字列を指定します。列幅が狭いと自動改行されます。 改行を防ぎたい場合はデータグリッドビューのヘッダを改行しない方法を参考にしてください。
  4. 列の表示/非表示

    Visibleプロパティをfalseにすると列が非表示になります。画面制御用の隠し項目や、 オプション機能でユーザーに表示列を選択させる等の使いみちがあります。
  5. 列幅

    列幅をピクセル単位で指定します。列幅の合計がデータグリッドビューの幅を超えると横スクロールバーが表示されます。
  6. 読み取り専用

    ReadOnlyプロパティをtrueにした列は読み取り専用となり、入力できなくなります。

    注意:ReadOnlyプロパティをfalseにしても、データグリッドビューのReadOnlyプロパティがtrueになっていると読み取り専用になります。列のReadOnlyプロパティをfalseにする場合はデータグリッドビューのReadOnlyプロパティもfalseにします。

  7. ユーザーによる列幅の変更可否

    列と列の間にある境界線をドラッグして列幅を変更できるかを指定します。 ResizableプロパティにDataGridViewTriState.Trueを指定すると変更可、DataGridViewTriState.Falseを指定すると変更不可です。
  8. 列を追加

    DataGridViewに列を追加します。列を複数追加する場合は 1. ~ 8. を繰り返します。このサンプルでは1列しか追加されません。
  9. 列の自動生成をオフに

    AutoGenerateColumnsプロパティがtrueのままではデータソースを元に列が自動生成され、余計な列が表示されてしまいます。 falseをセットして列の自動生成をオフにし、コードで追加した列のみが表示されるようにしておきます。

サンプルコードのダウンロード

サンプルコードの実行には Microsoft Visual Studio 2008 以上のバージョンが必要です。 2008以外のバージョンではプロジェクトを開いた際にファイルの変換が必要な場合があります。その場合は変換後に実行してください。

検証環境

関連ページ