DataGridView でマウスホバーセルの背景色を変更(サンプルあり)
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;}サンプルアプリケーション
DataGridView_HotTrackCell_CS.zip
※ サンプルアプリケーションは、.NET 8 で作成されています。
実行結果
下記実行結果では、Name 列 4 行目のセルにマウスホバーしています。

💬 コメント