DataGridView サンプル集【C# WinForms 使い方ガイド】
📋 目次(クリックで展開)
- データの表示(基本・データバインド)
- セル値の取得・更新
- 行の操作
- 列の設定
- スクロール制御・フォーカス制御
- 見た目のカスタマイズ(UI・デザイン)
- 編集制御と高度なユーザー操作
- 入力検証(データバリデーション)
- パフォーマンス
- データのインポート・エクスポート
- トラブル解決:よくあるエラーとつまずきポイント
- インデックス -1 には値がありません(Index -1 does not have a value)
- コントロールがデータバインドされている場合、行をプログラムから追加できません
- 有効ではないスレッド間の操作(Cross-thread operation not valid)
- ヘッダーをクリックしても並べ替わらない
- データ変更が画面に反映されない
- 書籍のご案内
DataGridView は、C# の Windows Forms(WinForms)で表形式のデータを表示・編集するための標準コントロールです。顧客管理システム、在庫管理システム、売上管理システムなど、多くの業務アプリケーションで利用されており、Windows Forms 開発では欠かせない存在です。
一方で、DataGridView は高機能なため、
- 行や列を追加・削除したい
- セルの値を取得・更新したい
- 色やフォントを変更したい
- イベント処理を実装したい
- DataTable やデータベースと連携したい
- パフォーマンスを改善したい
- エラーの原因や対処法を知りたい
といった場面で悩むことも少なくありません。
このページでは、当サイトで公開している DataGridView 関連の記事をカテゴリごとに整理しています。
各記事では、サンプルコードや、ダウンロード可能なサンプルアプリケーションを用いながら、DataGridView の基本操作から実践的な活用方法まで分かりやすく解説しています。
DataGridView の使い方を調べている方はもちろん、Windows Forms で業務アプリケーションを開発している方にも役立つ内容を随時追加していますので、ぜひブックマークしてご活用ください。
データの表示(基本・データバインド)
DataGridView を使う上で基本であり、かつ重要なアプローチが「データバインド」です。様々なデータソースとの紐づけ方法を紹介しています。
- DataGridView に DataTable をバインドする(サンプルあり)
- DataGridView:List データをバインドする(サンプルあり)
- DataGridView:BindingList をバインドする(サンプルあり)
- DataGridView:BindingSource でデータを検索・絞り込む(サンプルあり)
- DataGridView:SQLite のデータをバインドして表示・編集保存する方法(サンプルあり)
- DataGridView:MySQL に接続してデータを表示する
- DataGridView:List をソートする方法と SortableBindingList の実装(サンプルあり)
セル値の取得・更新
- DataGridView:特定のセルの値を取得する(サンプルあり)
- DataGridView:特定のセルの値を更新(書き換え)する(サンプルあり)
- DataGridView 現在セルの取得・変更(サンプルあり)
行の操作
- DataGridView 行追加の全パターン|Rows.Add・DataTable・BindingList(サンプルあり)
- DataGridView:新規追加行の表示・非表示制御と注意点(サンプルあり)
- DataGridView で行削除の制御(サンプルあり)
- DataGridView:新規行に初期値を設定する方法(サンプルあり)
- DataGridView:新規行を判定する方法(サンプルあり)
- DataGridView 列・行の固定(サンプルあり)
- DataGridView の行ヘッダーに行番号を表示する方法(サンプルあり)
列の設定
- DataGridView:ボタン列の表示(サンプルあり)
- DataGridView:ボタン列の画像表示とクリックイベントの実装(サンプルあり)
- DataGridView:チェックボックス列の表示とチェック状態を即座に取得する方法(サンプルあり)
- DataGridView:ヘッダーにチェックボックスを配置して全行選択・解除(サンプルあり)
- DataGridView:コンボボックス列を表示し選択値を取得する方法(サンプルあり)
- DataGridViewのコンボボックス列で直接入力を許可する方法(サンプルあり)
- DataGridView:コンボボックス列を連動させる方法(サンプルあり)
- DataGridView:リンク列の表示(サンプルあり)
- DataGridView:列ヘッダーに画像アイコンを表示(サンプルあり)
スクロール制御・フォーカス制御
- DataGridView CurrentCell を利用した動的スクロール(サンプルあり)
- DataGridView:スクロール位置を保存・復元する方法(サンプルあり)
- DataGridView で Enter キーを押下時に「右のセルへ移動」する(サンプルあり)
見た目のカスタマイズ(UI・デザイン)
- DataGridView:特定のセルの背景色を変更する(サンプルあり)
- DataGridView:隔行(奇数・偶数行)の背景色を設定(サンプルあり)
- DataGridView:ヘッダーとセルのフォント変更方法(サンプルあり)
- DataGridView 条件付き書式の実装テクニック(サンプルあり)
- DataGridView:数値・日付・通貨の表示書式を設定する
- DataGridView:大量データでも重くならない条件付き書式とスクロール遅延対策(サンプルあり)
- DataGridView でマウスホバーセルの背景色を変更(サンプルあり)
- DataGridView の ToolTip をマスターする:静的・動的情報表示の設計指針(サンプルあり)
- DataGridView:列の非表示方法と非表示列のセル値取得(サンプルあり)
- DataGridView:セル内で文字列を折り返して表示する(サンプルあり)
- DataGridView:進捗率をプログレスバー表示・数値編集(サンプルあり)
編集制御と高度なユーザー操作
- DataGridView グリッド全体・行・セルの編集制御(サンプルあり)
- DataGridView:日付編集時にカレンダー(DateTimePicker)を利用する方法(サンプルあり)
- DataGridView:セル編集時に IME モードの自動制御(サンプルあり)
- DataGridView:セル内にスパークライン(折れ線グラフ)を表示する方法(サンプルあり)
- DataGridView:セルへの画像表示と null 時の×マークを消す方法(サンプルあり)
- DataGridView:ユーザーのドラッグアンドドロップとプログラムでの列移動(サンプルあり)
- DataGridView:行のドラッグ&ドロップとドロップ先のインディケーター表示(サンプルあり)
入力検証(データバリデーション)
- DataGridView:セルの右端にエラーアイコンを表示する方法(サンプルあり)
- DataGridView:行ヘッダー(左端)にエラーアイコンを表示して入力チェックを行う方法(サンプルあり)
- DataGridView:セル編集時の入力制限(サンプルあり)
パフォーマンス
データのインポート・エクスポート
- DataGridView:Excel データをインポート(読込)する(サンプルあり)
- DataGridView:データを Excel に出力する(サンプルあり)
- DataGridView:Excel と相互コピー&ペーストする方法(サンプルあり)
トラブル解決:よくあるエラーとつまずきポイント
インデックス -1 には値がありません(Index -1 does not have a value)
BindingSource.Position が -1 の状態で Current を参照すると発生します。データ0件・フィルタ・行削除・ComboBox 列・初期化順序の5系統があります。
コントロールがデータバインドされている場合、行をプログラムから追加できません
DataSource 設定済みの状態で Rows.Add() を呼ぶと発生します。
有効ではないスレッド間の操作(Cross-thread operation not valid)
別スレッドから直接グリッドを更新しようとして発生します。
ヘッダーをクリックしても並べ替わらない
例外は出ませんが、List<T> バインド時の典型的な症状です。IBindingList.SupportsSorting が false を返しているため、並べ替えが実行されません。
データ変更が画面に反映されない
書籍のご案内
実務で要求される DataGridView の実装パターンを、サンプルコード付きで体系的にまとめた書籍を公開しています。
💬 コメント