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