C#
パターン①: 非バインド時 — Rows.Add / Rows.Insert
出典: C# DataGridView 行追加の3パターン — Rows.Add / DataSource バインド / BindingList の使い分け — 最短対処: コピペで動く3つの行追加 / パターン①: 非バインド時 — Rows.Add / Rows.Insert
// 先に列を用意(非バインド)
grid.Columns.Add("Id", "ID");
grid.Columns.Add("Name", "名前");
// 末尾に1行追加(値をそのまま渡す)
grid.Rows.Add("1", "佐藤");
// 空行を足してからセルに代入してもいい
int idx = grid.Rows.Add();
grid.Rows[idx].Cells["Name"].Value = "鈴木";
// 指定位置に差し込みたい時は Insert
grid.Rows.Insert(0, "0", "先頭に入る行");
▸ この snippet は実行結果未収録
▸ 実行結果は未収録です
Source収録記事
この snippet は記事の「最短対処: コピペで動く3つの行追加 / パターン①: 非バインド時 — Rows.Add / Rows.Insert」セクションに登場する。コードの前後の文脈・ハマりどころの解説は記事本文で。
同じ記事から
4 件// DataSource にバインド済みの DataTable を取り出して足す var dt = (DataTable)grid.DataSource; dt.Rows.Add(3, "高橋"); // grid に自動で反映される未収録
パターン②: DataTable バインド時 — ソース側に足す
#5c0d2c8be188
public class Employee { public int Id { get; set; } public string Name { get; set; }未収録
パターン③: BindingList / BindingSource 経由
#9954c7301854
var dt = new DataTable(); dt.Columns.Add("Id", typeof(int)); dt.Columns.Add("Name", typeof(string));未収録
ハマり①: DataSource 設定済みで grid.Rows.Add → InvalidOperationException
#967f8e84addb
// AllowUserToAddRows = true(既定)のまま件数を数えると… int count = grid.Rows.Count; // データ3行でも「4」が返る(+新規入力行) // データ行だけ数えたい時は IsNewRow を除外する未収録
ハマり②: AllowUserToAddRows の新規入力行で件数が1ズレる
#84071369596f
