記事内に広告が含まれています。

Windows Forms:DataGridView でマウスがホバーしているセルの背景色を変更する(サンプルあり)

2024年9月8日

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 行目のセルにマウスホバーしています。

-Windows Forms