有问题。 当我单击单元格时,它将显示一个彩色对话框表单。 设置新颜色后,当前单元格背面颜色没有刷新。 但是当我单击另一个单元格或当前单元格时,单元格的背景颜色会发生变化。
这是我的 C# 代码:
private void DGV_CellClick(object sender, DataGridViewCellEventArg e)
{
DataGridView dgv = sender as DataGridView;
int rowIndex = e.RowIndex, colIndex = e.ColumnIndex;
if (colIndex==1)
{
ColorDialog dialog = new ColorDialog();
if (dialog.ShowDialog()==DialogResult.OK)
{
dgv.Rows[rowIndex].Cells[colIndex].Style.BackColor=dialog.Color;
}
}
}
我尝试了 dgv.Refresh() 和 dgv.Update()。 但还是没有改变。
有什么方法可以解决我的问题吗?
我想在从 ColorDialog 设置新颜色后更改当前单元格的背景颜色。
尝试使用此代码
{
dgv.Rows[rowIndex].Cells[colIndex].Style.BackColor = 对话框.Color;
// This will refresh the DGV cells
dgv.InvalidateCell(colIndex, rowIndex);
}
通过调用 dgv.InvalidateCell(colIndex, rowIndex),您将指示 DataGridView 重新绘制单元格,该单元格现在将反映更新后的背景颜色。