C#
結論: 行選択 → 明細表示なら CurrentCellChanged + 起動時 guard
出典: C# DataGridView 行選択イベント 3 種 — SelectionChanged / CellEnter / CurrentCellChanged の使い分け早見表 — 結論: 行選択 → 明細表示なら CurrentCellChanged + 起動時 guard
private void dgv_CurrentCellChanged(object sender, EventArgs e)
{
// Form_Load 直後にも 1 回呼ばれるので、CurrentRow null チェック必須
var row = dgv.CurrentRow;
if (row == null || row.IsNewRow) return;
var id = row.Cells["Id"].Value?.ToString();
LoadDetailPanel(id);
}
▸ この snippet は実行結果未収録
▸ 実行結果は未収録です
Source収録記事
この snippet は記事の「結論: 行選択 → 明細表示なら CurrentCellChanged + 起動時 guard」セクションに登場する。コードの前後の文脈・ハマりどころの解説は記事本文で。
同じ記事から
3 件private void dgv_SelectionChanged(object sender, EventArgs e) { // 選択範囲のセル数を集計する用途には向く var selectedCount = dgv.SelectedRows.Count;未収録
パターン 1: SelectionChanged — 複数選択の集計に使う
#8e821ac45fd9
private void dgv_CellEnter(object sender, DataGridViewCellEventArgs e) { // 「このセルに入ってきた瞬間」を取れる if (e.RowIndex < 0) return; // ヘッダー行ガード未収録
パターン 2: CellEnter — セル入場時の検証に使う
#e50e68449b2b
private void dgv_CurrentCellChanged(object sender, EventArgs e) { var row = dgv.CurrentRow; if (row == null || row.IsNewRow) return; // ★ Form_Load 直後の 1 回発火対策未収録
パターン 3: CurrentCellChanged — 行を選んだ瞬間の明細表示に使う (推奨)
#32603401ecad
