【问题标题】:AcceptChanges on DataTable reverts cell stylesDataTable 上的 AcceptChanges 恢复单元格样式
【发布时间】:2011-06-10 08:56:50
【问题描述】:

我有一个 DataGridView,其中一个 BindingSource 作为它的数据源,一个 DataTable 作为 BindingSource 的数据源。 当我加载数据和我的网格时,我通过调用在一些单元格上设置样式:


grid.Rows[0].Cells[0].Style.BackColor = Color.Red;

我的 BindingSource 对 CurrentChanged 事件有一些逻辑。当当前行在此逻辑结束时发生更改时,我在 DataTable 上调用 AcceptChanges。不幸的是,这会导致该行单元格的单元格样式恢复为原始状态。

如何强制网格不恢复 DataTable.AcceptChanges 上的单元格样式? 也许我做错了什么。

【问题讨论】:

    标签: c# datagridview datatable


    【解决方案1】:

    单元格的颜色是否取决于数据表绑定的某些属性或列?

    我猜当您调用 AcceptChanges 时,它会导致 DataGridView 在其底层数据源发生更改时重绘。

    我会尝试使用RowDataBoundCellFormatting 事件并在处理程序中更改(相应行中的列的颜色)。

    【讨论】:

    • 在寻找我的问题的解决方案时,给其他遇到此问题的人一个注释:我将 DataGridView 末尾的空白行设置为 ReadOnly,因为不允许用户创建新行但允许更改现有的。我发现即使更改与完全不同的行相关,AcceptChanges 也会清除空白行的 ReadOnly 状态!除了在每次调用 AcceptChanges 后恢复 ReadOnly 状态外,我还没有找到解决方案。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-06-13
    • 2021-09-20
    • 1970-01-01
    • 2010-12-03
    • 1970-01-01
    • 2015-08-24
    • 2023-02-08
    相关资源
    最近更新 更多