这个问题由来已久,我最近在工作中也遇到了这个问题,不过属于这个问题比较简单初级的涉及。

发现网上对这个问题的解决方案很多不对,答非所问。

所以这里将我测试成功的解决方案记录下来。

首先,DataGridView  CheckBoxColumn 默认是可以多选,不能单选的。

所以无法通过设置来解决,必须通过代码自己控制。

而具体使用哪个事件,哪种逻辑也有很多的选择。

我自己测试,试用了DataGridView1_CellClick事件,DataGridView1_DataBindingComplete事件,

DataGridView1_DataValueChanged事件,DataGridView1_CellContentClick事件,

最终只有DataGridView1_CellContentClick这个事件成功解决了这个问题。

再说下我遇到这个问题具体情况,很简单,只有一列CheckBoxColumn,行数不限,要求一次能选一行,且当前行一旦选中,其它行取消选中。

代码如下(Winform C#语言):

private void DataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e)
{
if (this.DataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex].GetType() == typeof(DataGridViewCheckBoxCell))
{
for (int i = 0; i < this.DataGridView1.RowCount; i++)
{
this.DataGridView1.Rows[i].Cells[e.ColumnIndex].Value = false;
}
this.DataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex].Value = true;
}
}

最新文章

  1. Uploadify/uploadifive上传(中文文档)
  2. Oracle 数据库--一个用户同步的sql
  3. 第k大的数,前k大的数
  4. Android中实现自定义的拍照应用
  5. Python闭包与javascript闭包比较
  6. (转)所有iOS设备的屏幕分辨率
  7. linux登录windows服务器
  8. 提高code效率
  9. Python操作redis系列之 列表(list) (四)
  10. sleep() 和 wait() 有什么区别?
  11. beego框架的最简单登入演示
  12. Hibernate表关系03
  13. vue2.0组件传值
  14. $router.query和$router.params的区别
  15. linux系统被ddos攻击识别
  16. SpringBoot部署
  17. DB2创建function(一)
  18. 关于fork()函数的精辟分析
  19. Spring 集成Hibernate的三种方式
  20. word2vec参数

热门文章

  1. IOS中 init和initialize
  2. struts2 通配符简化配置
  3. SQL编程之生日问题
  4. 收集的VS2013的使用小技巧( 不断总结中)
  5. 序列化悍将Protobuf-Net
  6. Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by
  7. QT5.4 vs2013静态加载插件的sqlite静态编译
  8. Android项目--tabhost
  9. Smarty数学运算
  10. 实用的两款jquery树形tree插件