datagridview单元格鼠标悬停backcolor更改

use*_*256 1 .net c# datagridview mouseover c#-4.0

我想在鼠标悬停在特定单元格上时更改datagridview中单元格的背景颜色.

试过的代码:

private void dataGridView_whateventwillcomehere(object sender, DataGridViewCellEventArgs e)
        {

        }
Run Code Online (Sandbox Code Playgroud)

NAS*_*SER 8

CellMouseMoveEvent 上尝试这个

private void dataGridView1_CellMouseMove(object sender, DataGridViewCellMouseEventArgs e)
{
    dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex].Style.BackColor = Color.Blue;
}
Run Code Online (Sandbox Code Playgroud)

您需要CellMouseLeave事件来恢复颜色

private void dataGridView1_CellMouseLeave(object sender, DataGridViewCellEventArgs e)
{
    dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex].Style.BackColor = Color.White;
}
Run Code Online (Sandbox Code Playgroud)

  • 同样在DGV构造函数中你需要设置双缓冲绘画,否则改变单元格样式会引发鼠标移动过去DGV上的闪烁`this.SetStyle(ControlStyles.OptimizedDoubleBuffer | ControlStyles.AllPaintingInWmPaint,true); (2认同)