我有两个DataGridViews,A和B,以及一个DataSet“D”,两个表“tA”和“tB”在结构上相同。每个DataGridView都通过自己的BindingSource连接到各自的表。
其中一个名为“Complete”的列包含用于将数据行标记为“Complete”的复选框。当用户检查DataGridView A中的这样一个复选框时,我想立即将该数据行从dgv A移动到dgv B.我已经使用下面的事件处理代码完成了这个
void datagridviewA_CurrentCellDirtyStateChanged(object sender, EventArgs e)
{
if (datagridviewA.IsCurrentCellDirty)
{
datagridviewA.CommitEdit(DataGridViewDataErrorContexts.Commit);
}
}
void datagridviewA_CellValueChanged(object sender, DataGridViewCellEventArgs e)
{
if (e.ColumnIndex == 11) // 11 is the column index containing the "complete" checkboxes
{
tB.ImportRow(tA.Rows[e.RowIndex]);
tA.Rows.RemoveAt(e.RowIndex);
}
}
这可以将行从dgv A移动到dgv B,但我希望在dgv B中检查“完整”复选框单元格,但事实并非如此。就好像在更新tA之前从tA导入行以反映复选框的“已检查”状态。
如何移动行并按预期选中复选框?
谢谢,
答案 0 :(得分:0)
尝试将单元格转换为DataGridViewCheckBoxCell并将已检查属性设置为true。
答案 1 :(得分:0)
我不得不打电话给“tA.Rows [e.RowIndex] .AcceptChanges();”在导入行之前!