在我的C#datagridview上,我希望用户确认他们确实已经点击过该单元格。
我正在使用datagridview的MouseDown和MouseUp事件。通过将单元格颜色更改为蓝色,代码可以正确地为MouseDown事件运行,但MouseUp事件不会将单元格的颜色更改回透明。
结果函数是我点击的所有单元格变为蓝色,并保持蓝色。
我没有正确调用Refresh方法吗?是否有更好的方法来实现同样的目标?
这是我的代码:
Input: 1 2 3 7 7 7 6;
Output: 3. 4. 5.
答案 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