DataGridViewの使い方4つ|行の追加や削除の方法を解説

DataGridViewの使い方4つ|行の追加や削除の方法を解説のアイキャッチイメージ

DataGridViewとは?


DataGridViewは、.NET Frameworkで利用できるクラスで、このクラスを使ってデータ入力可能なグリッドを表示し、データの入出力ができます。

VB.NETやC#などで利用でき、成績表や売上表など、表形式で表示するとわかりやすいデータの入出力に適したコントロールです。クラス化されているので、個々のデータを取得し処理するコード記述も簡単に実装できます。

DataGridViewの使い方4つ


DataGridViewは一覧表形式でデータ表示する場面で使いたいクラスです。Excelの表を思い浮かべてみるとDataGridViewの実装後イメージがつかめるでしょう。

ここでは、実際にDataGridViewを実装する際の使い方を、順を追って紹介します。「グリッド」のイメージが浮かばない人は、Excelを思い浮かべながら参照してください。

DataGridViewの使い方1:フォームに追加

DataGridViewはユーザーが利用する画面に配置します。実装上は、フォームにDataGridViewを追加することになります。

DataGridViewをフォームに追加する手順は、開発言語がVB.netかC#か、利用するツールのバージョンによって異なることがあります。

いずれの場合もフォームを作成した後、メニュー「ツールボックス」からDataGridViewを選択し、配置します。

DataGridViewの使い方2:初期値の設定

フォーム上にDataGridViewを追加したら、画面表示時に表示される「初期値」を設定します。初期値にはDataGridViewの列名も含まれます。

初期値はフォームのコードを開き、「Load」イベント内に1カラムずつコードで記述します。列名は、「フォーム名.Columns(x).HeaderText = “x列目の名称”」で定義できます。

DataGridViewの使い方3:列数・行数の指定

DataGridViewに何列・何行表示するのかを「Load」イベントにコード記述します。

ここで指定する行数には列タイトルで使用する1行を含める必要はありません。DataGridViewの列数と行数は以下のようにコード記述します。列と行は初期設定に対し、あとで追加・削除できます。

例)5列×3行の表定義
フォーム名.ColumnCount = 5
フォーム名.RowCount = 3

DataGridViewの使い方4:表示

DataGridViewの初期設定が一通り終わったら、実際の表示がどうなるのか確認してみましょう。DataGridViewがどう動作するのか確認する方法として、プログラムを実行する方法とデバッグモードで実行する方法があります。

デバッグモードを使えば、記述したコードが1行ずつ実行されていく結果も確認可能です。初期設定を確認できたところで、実行を停止することもできます。

DataGridViewをつかいこなす方法4つ


DataGridViewの初期設定が終わり、体裁の確認までできたら、このDataGridViewをさらに使いこなして使いやすい画面を作ってみましょう。

ここでは、初期設定で定義したDataGridViewの行数を変更する方法や表形式のデータ閲覧に便利なソートの方法、検索方法を紹介します。作成するDataGridViewで表示するデータの種類に応じてこれらの機能も盛り込んでおきましょう。

方法1:行を追加する

初期設定で定義した行数に対し、プログラムの実行過程で表示すべき行数が増えることがあります。DataGridViewではAddメソッドを使って行を追加できます。

Addメソッドによる行追加には、以下の3つの方法があります。
・1行追加:F1.Rows.Add()
・複数行追加:F1.Rows.Add(追加する行数)
・データと行を追加:F1.Rows.Add(“1列目の値”, “2列目の値”);

行を追加するときの注意点

Addメソッドを使って行追加をする際は、データバインドと一緒に使うことができないので注意が必要です。

プログラムの中で、DataGridViewに他のテーブルからデータ移送(バインド)している場合、データバインドの後で行を追加してさらにデータ要素を増やすコード記述をするとエラーになります。

データバインドした場合、DataGridViewの行数はバインド元のテーブルと同じ行数になり、追加はできません。

方法2:ソートする

DataGridViewでソートを行う場合、コード記述の必要はなく、ソートキーとなる列名をクリックするごとに「昇順/降順」ソートが行われます。

この機能では、複合条件によるソートはできないので、複合条件のソートが必要な場合は、プログラムコードを書かなければなりません。

方法3:行を削除する

行の追加と対の機能になるのが削除機能です。行削除は、「フォーム名.Rows.RemoveAt(行番号)」とコード記述します。

フォームを表示すると、指定された行番号の行が削除され、次の行番号以降のデータが1行上に詰める形で結果表示されます。

方法4:検索する

DataGridView内のデータを検索する場合は、検索キーワードをもとにDataGridView内をループ処理で検索する方法とLINQを使う方法があります。

LINQを使う場合は、DataGridViewのデータをDataTableに格納し、AsEnumerableメソッドを利用します。その後、条件をWhereオペレータで指定すると該当する値が検索されます。

DataGridViewのカラムを非表示にする方法


DataGridViewに表示したくない値はデータとして取得しない、カラムに値をセットしない、という対応も可能です。

プログラム処理のキー項目のように、利用者にとっては必要ない項目でもプログラムには必要になる項目は、DataGridViewのカラム単位で非表示にできます。

例)
F1.Columns[“非表示にしたいカラム名”].Visible = false;

カラム名を変更するには?

DataaGridViewを追加したときに、初期設定としてカラム名を設定しました。いったん設定されたカラム名を変更する際は、変更前のカラム名を変更後のカラム名に設定しなおすコードを記述します。

例えば「変更前」という名称のカラム名を「更新前」に変更する場合は、以下のように記述します。

コード記述例)
F1.Columns[“変更前”].HeaderText = “更新前”;

DataSourceの使い方


DataGridViewにデータを表示する方法として、1セルまたは1行ずつプログラム内で値をセットする方法のほか、DataSourceプロパティを使ってデータを一気にセットする方法もあります。

LIST型やDataTable型のテーブルに値を順次設定していき、データをセットし終わった段階で、DataGridViewのDataSourceプロパティに移送します。

例)
F1.DataSource = SampleData;

DataTableの使い方

DataGridViewのDataSourceプロパティにデータを一気に移送するときに使えるデータ型がDataTableです。

DataTableクラスは列や行、データの操作がしやすいので、DataGridViewで検索やソートを行う場合は、プログラム内部でDataTableクラスにデータをセットして実施します。

データ・バインディング

データ・バインディングとは簡単にいえばデータとデータを結びつける機能です。UIのようなビューロジックと、複雑なプログラムを実行するビジネスロジックを容易に切り分けるためにも活用されます。

データ・バインディングはマイクロソフト社の.NET Framework に組み込まれており、ビューとビューモデルを結びつける役割を担っています。

DataGridViewを使ってみよう


システムを使って入出力を行う場合、一覧形式でデータを扱う方がわかりやすく使いやすい業務もたくさんあります。複数のデータを見ながら並行して入力したい場合は、DataGridViewを積極的に活用しましょう。

プログラムとしての扱いも難しくなく、簡単なコード記述で、ユーザーに便利なUIを提供できます。

インフラエンジニア専門の転職サイト「FEnetインフラ」

FEnetインフラはサービス開始から10年以上『エンジニアの生涯価値の向上』をミッションに掲げ、多くのエンジニアの就業を支援してきました。

転職をお考えの方は気軽にご登録・ご相談ください。