更改单元格BackColor后,DataGridView未刷新



我正在从列表中填充DataGridView。在其中一列中,我需要能够使用ColorDialog更改单个单元格的BackColor。

我这样做:

private void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e) {
if (e.ColumnIndex == 2) {
ColorDialog cd1 = new ColorDialog();
if (cd1.ShowDialog() == DialogResult.OK) {
Color color = cd1.Color;
dataGridView1.Rows[e.RowIndex].Cells[2].Style.BackColor = color;
}
}
}

但是,BackColor不会立即出现,而是只有在鼠标单击DataGrid之后才会出现。

我尝试过:

dataGridView1.Update();
dataGridView1.Refresh();

似乎什么都不管用。

有没有办法在颜色改变后自动刷新单元格?

在这样更改单元格背景颜色后,尝试更改当前单元格。

if (e.ColumnIndex == 1)
{
ColorDialog colorDialog = new ColorDialog();
if (colorDialog.ShowDialog() == DialogResult.OK)
{
Color color = colorDialog.Color;
dgvExample.CurrentCell.Style.BackColor = color;
dgvExample.CurrentCell = dgvExample.CurrentRow.Cells[0];
}
}

最新更新