只有一个单元格颜色应该在行中更改

时间:2012-02-27 12:56:48

标签: c# winforms datagridview

我在win表单中使用datagridview现在我必须更改单元格的颜色当任何用户点击该单元格时我必须将该单元格颜色更改为红色,我已使用此代码

 DataGridViewCellStyle CellStyle = new DataGridViewCellStyle();
 CellStyle.BackColor = Color.Red;
 dataGridView2.Rows[e.RowIndex].Cells[e.ColumnIndex].Style = CellStyle;

但现在如果用户在同一行中选择了任何其他单元格,则其颜色应更改为 红色和之前选择的应该再次变为白色为非选中。

1 个答案:

答案 0 :(得分:1)

您需要维护对先前所选单元格的引用,以便您可以将其更改回来。

DataGridViewCell _currentCell = null; // class level variable

... 


// inside your event, set the current cell back to white
if(_currentCell != null) _currentCell.Style.BackColor = Color.White;

// now set the current cell to the selected cell
_currentCell = dataGridView2.Rows[e.RowIndex].Cells[e.ColumnIndex];

_currentCell.Style.BackColor = Color.Red;