DatagridViewcheckbox选中?

我有一个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

这里有几件事情:

  • 单元格单击事件只是表示用户在数据网格视图上用鼠标按钮单击,您要查找的可能是CellValueChanged
  • 这个事件会给你改变的单元格的坐标。 你应该检查它是否在你的复选框列中,然后得到一个单元格的引用,你可以检查这个单元格。值是否为真或假。 您不会在DataGridViewCheckBoxColumn上找到任何值 – 它将位于单元级别,并且始终可以找到存储在cell.Value中的值,而不管它是哪种类型的列。