C#
定石2: EditMode 4種類の使い分け—編集開始タイミング制御
出典: WinForms DataGridView の編集モード完全ガイド — ReadOnly / EditMode / RowValidating の使い分け — 定石2: EditMode 4種類の使い分け—編集開始タイミング制御
// ✅定石2: EditMode 4種類の挙動
// 1. EditOnEnter:セルにフォーカスが入った瞬間に編集モード(既定値: EditOnKeystrokeOrF2)
dataGridView1.EditMode = DataGridViewEditMode.EditOnEnter;
// 2. EditOnKeystroke:フォーカス入って何かキーを押した瞬間
dataGridView1.EditMode = DataGridViewEditMode.EditOnKeystroke;
// 3. EditOnF2: F2キーで編集モード(既定挙動の一部)
dataGridView1.EditMode = DataGridViewEditMode.EditOnF2;
// 4. EditProgrammatically: BeginEdit()を呼ぶまで編集モードに入らない
dataGridView1.EditMode = DataGridViewEditMode.EditProgrammatically;
//プログラム側から編集モードに入る(EditProgrammaticallyと組み合わせ)
private void btnEdit_Click(object sender, EventArgs e)
{
dataGridView1.CurrentCell = dataGridView1.Rows[0].Cells["name"];
dataGridView1.BeginEdit(true); // true =現在の値を選択状態にする
}
▸ この snippet は実行結果未収録
▸ 実行結果は未収録です
Source収録記事
この snippet は記事の「定石2: EditMode 4種類の使い分け—編集開始タイミング制御」セクションに登場する。コードの前後の文脈・ハマりどころの解説は記事本文で。
同じ記事から
4 件// ✅定石1: ReadOnlyの3層階層 //階層1:コントロール全体(最強・最もシンプル) dataGridView1.ReadOnly = true; dataGridView1.AllowUserToAddRows = false; //新規追加行も無効化未収録
定石1: ReadOnlyの3層階層—コントロール/列・行/セル
#548f6ae7bc2a
// ✅定石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
