当我们选中该Cell后第时间得到的该值为 dgViewRows(i)Cells()Value=False 不过在DataGridViewCurrentCellDirtyStateChanged事件中增加以下语句 DataGridViewCommitEdit 该事件的意思是单元格状态因其内容更改而更改是发生 CommitEdit将当前单元格中的更改提交到数据缓存但不结束编辑模式 引自msdn: 通常复选框单元格值专门用于存储(如同其他任何数据一样)或用于执行批量操作如果您想在用户单击复选框单元格时立即作出响应可以处理DataGridViewCellClick事件但此事件发生在单元格值更新之前如果在单击时需要新的值则有一个选项可以计算基于当前值的预期值另一种方法是立即提交更改并处理DataGridViewCellValueChanged事件以对此作出响应要在单击单元格时提交更改必须处理DataGridViewCurrentCellDirtyStateChanged事件在处理程序中如果当前单元格是复选框单元格将调用DataGridViewCommitEdit方法并传入Commit值 for (int i = ; i < dg_tixingRowCount; i++) { string re_value = dg_tixingRows[i]Cells[]EditedFormattedValueToString(); if (re_value==True)//判断勾选的 { T_KeChengTiXing kc = new T_KeChengTiXing(); urse_id = PK_Course; kctixing_id = IntParse(dg_tixingRows[i]Cells[]ValueToString()); T_KeChengTiXingControl kcc = new T_KeChengTiXingControl(); kccAdd(kc); flag = true; } else { continue; } } |