DataGridView Mousedown和Mouseup单元格背景颜色更改不起作用

时间:2016-03-08 14:18:12

标签: c# datagridview

在我的C#datagridview上,我希望用户确认他们确实已经点击过该单元格。

我正在使用datagridview的MouseDown和MouseUp事件。通过将单元格颜色更改为蓝色,代码可以正确地为MouseDown事件运行,但MouseUp事件不会将单元格的颜色更改回透明。

结果函数是我点击的所有单元格变为蓝色,并保持蓝色。

我没有正确调用Refresh方法吗?是否有更好的方法来实现同样的目标?

这是我的代码:

Input: 1 2 3 7 7 7 6;
Output: 3. 4. 5.

3 个答案:

答案 0 :(得分:1)

您只需要MouseDown中的一行:

Selector_dataGridView.Rows[e.RowIndex].Cells[e.ColumnIndex].Style.SelectionBackColor = Color.Blue;

然后在MouseUp中恢复:

Selector_dataGridView.Rows[e.RowIndex].Cells[e.ColumnIndex].Style.SelectionBackColor = Color.White;

答案 1 :(得分:0)

在Selector_dataGridView_CellMouseUp事件中,尝试将颜色更改为空而不是透明:

CellStyle.BackColor = Color.Empty;

答案 2 :(得分:0)

单元鼠标向上处理程序将在当时鼠标指针所在的任何单元格上触发。我假设您在点击后将鼠标从点击的单元格移开。我建议在mouseup上清除/刷新所有单元格透明,但如果你处理很多单元格,这将有点过分。

https://msdn.microsoft.com/en-us/library/system.windows.forms.datagridview.cellmouseup(v=vs.110).aspx