Windows Forms の DataGridView で、マウスホバーしているセルの背景色を変更するには、DataGridView の CellMouseEnter イベントと、CellMouseLeave イベントを組み合わせることで実現できます。
マウスがセルに入った時のセル背景色の変更
まずは、マウスがセルに入ったタイミングで発生する、CellMouseEnter イベントをハンドルし、セルの背景色を配色します。ヘッダー行列やヘッダー列では処理を行わない制御を加えます。
private void DataGridView1_CellMouseEnter(object? sender, DataGridViewCellEventArgs e) { // ヘッダー行や列を除外 if (e.RowIndex < 0 || e.ColumnIndex < 0) { return; } // ホバー時の色 this.dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex].Style.BackColor = Color.LightBlue; }
マウスがセルから出た時のセル背景色の復元
一方で、マウスがセルから出たタイミングで発生する、CellMouseLeave イベントをハンドルし、マウスが外れるセルの背景色をもとに戻します。CellMouseEnter イベントでの実装と同様に、ここでも、ヘッダー行列やヘッダー列では処理を行わない制御を加えます。
private void DataGridView1_CellMouseLeave(object? sender, DataGridViewCellEventArgs e) { // ヘッダー行や列を除外 if (e.RowIndex < 0 || e.ColumnIndex < 0) { return; } // 元の色に戻す this.dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex].Style.BackColor = Color.White; }
サンプルアプリケーション
サンプルアプリケーションは、.NET 8 で作成されています。
実行結果
下記実行結果では、Name 列 4 行目のセルにマウスホバーしています。