C#
定石1: ReadOnlyの3層階層—コントロール/列・行/セル
出典: WinForms DataGridView の編集モード完全ガイド — ReadOnly / EditMode / RowValidating の使い分け — 定石1: ReadOnlyの3層階層—コントロール/列・行/セル
// ✅定石1: ReadOnlyの3層階層
//階層1:コントロール全体(最強・最もシンプル)
dataGridView1.ReadOnly = true;
dataGridView1.AllowUserToAddRows = false; //新規追加行も無効化
dataGridView1.AllowUserToDeleteRows = false; //行削除も無効化
//階層2:列単位(特定列だけReadOnly)
dataGridView1.Columns["id"].ReadOnly = true;
dataGridView1.Columns["created_at"].ReadOnly = true;
//階層2:行単位(特定行だけReadOnly)
dataGridView1.Rows[3].ReadOnly = true;
//階層3:セル単位(行×列の交点だけReadOnly)
dataGridView1.Rows[3].Cells["price"].ReadOnly = true;
▸ この snippet は実行結果未収録
▸ 実行結果は未収録です
Source収録記事
この snippet は記事の「定石1: ReadOnlyの3層階層—コントロール/列・行/セル」セクションに登場する。コードの前後の文脈・ハマりどころの解説は記事本文で。
同じ記事から
4 件// ✅定石2: EditMode 4種類の挙動 // 1. EditOnEnter:セルにフォーカスが入った瞬間に編集モード(既定値: EditOnKeystrokeOrF2) dataGridView1.EditMode = DataGridViewEditMode.EditOnEnter;未収録
定石2: EditMode 4種類の使い分け—編集開始タイミング制御
#d2b3e420786d
// ✅定石3:編集イベントの3段階制御 // 1. CellBeginEdit:編集モードに入る直前 private void dataGridView1_CellBeginEdit(object sender, DataGridViewCellCancelEventArgs e) {未収録
定石3: CellBeginEdit / CellEndEdit / RowValidatingの使い分け
#511ed36968b3
// ✅定石4: EditingControlShowingで数値のみ入力を強制 private void dataGridView1_EditingControlShowing(object sender, DataGridViewEditingControlShowingEventArgs e) { if (dataGridView1.CurrentCell?.OwningColumn.Name == "amount")未収録
定石4: EditingControlShowingでIME /数値制限を仕込む
#d9111a623822
// ❌ NG: DataBound前にRows[i].ReadOnlyを設定(消える) private void Form_Load(object sender, EventArgs e) { dataGridView1.DataSource = LoadFromDb();未収録
定石5: DataBindingCompleteで行単位ReadOnlyを維持
#644e739d514b
