【发布时间】:2009-03-23 13:29:13
【问题描述】:
我在 datagridview windows 窗体中有一个复选框,并且有一个事件处理程序 cell_Click 在单元格上单击我检查 datagridview 列是否有一个复选框,如果单元格也被选中,它会显示为真(即复选框未选中,仅选中了 datagrid 视图单元格)并且复选框未选中。我试过了列 gettype 并发现它显示 DatagridViewCheckBox 但检查值错误的类型.???
【问题讨论】:
我在 datagridview windows 窗体中有一个复选框,并且有一个事件处理程序 cell_Click 在单元格上单击我检查 datagridview 列是否有一个复选框,如果单元格也被选中,它会显示为真(即复选框未选中,仅选中了 datagrid 视图单元格)并且复选框未选中。我试过了列 gettype 并发现它显示 DatagridViewCheckBox 但检查值错误的类型.???
【问题讨论】:
如果我理解正确,您是说复选框值与基础数据不一致?
这很可能是因为数据已更新并且“脏”,例如它尚未提交到数据源。如果您添加这样的事件处理程序:
private void dataGridView1_CurrentCellDirtyStateChanged(object sender, EventArgs e)
{
if (dataGridView1.CurrentCell is System.Windows.Forms.DataGridViewCheckBoxCell)
{
dataGridView1.CommitEdit(DataGridViewDataErrorContexts.Commit);
}
}
然后应该更新数据源,当您查询单元格时,您将拥有正确的复选框状态。
【讨论】:
这里有几件事:
【讨论】: