DataGridCellCollection 样式 BackColor 设置 BackColor 后没有改变

问题描述 投票:0回答:1

有问题。 当我单击单元格时,它将显示一个彩色对话框表单。 设置新颜色后,当前单元格背面颜色没有刷新。 但是当我单击另一个单元格或当前单元格时,单元格的背景颜色会发生变化。

这是我的 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 设置新颜色后更改当前单元格的背景颜色。

c# datagridview datagridviewcellstyle
1个回答
0
投票

尝试使用此代码
{ dgv.Rows[rowIndex].Cells[colIndex].Style.BackColor = 对话框.Color;

        // This will refresh the DGV cells
        dgv.InvalidateCell(colIndex, rowIndex);
    }

通过调用 dgv.InvalidateCell(colIndex, rowIndex),您将指示 DataGridView 重新绘制单元格,该单元格现在将反映更新后的背景颜色。

© www.soinside.com 2019 - 2024. All rights reserved.