我在datagridview窗体中有一个复选框,并有一个事件处理程序cell_Click 在单元格上单击我检查datagridview列的复选框如果单元格也被选中则显示为true(即未选中复选框且仅选中了数据网格视图单元格)并且未选中复选框。列gettype并找到它显示DatagridViewCheckBox的类型,但错误的检查值。???
答案 0 :(得分:9)
如果我理解正确,您说复选框值与基础数据不对齐?
这可能是因为数据已经更新并且是“脏的”,例如它还没有被提交到数据源。如果你添加一个这样的事件处理程序:
private void dataGridView1_CurrentCellDirtyStateChanged(object sender, EventArgs e)
{
if (dataGridView1.CurrentCell is System.Windows.Forms.DataGridViewCheckBoxCell)
{
dataGridView1.CommitEdit(DataGridViewDataErrorContexts.Commit);
}
}
然后,这应该更新数据源,当您查询单元格时,您将拥有正确的复选框状态。
答案 1 :(得分:1)
我找到了一个问题的答案。这个链接帮助我找到了解决方案。 克莱德和伊恩的答案也是其中的一部分谢谢。 链接在这里。 http://msdn.microsoft.com/en-us/library/system.windows.forms.datagridview.currentcelldirtystatechanged.aspx
答案 2 :(得分:0)
这里有几件事: