不知道大家有没有遇到过这个问题,在winform开发软件的过程中,使用Datagridview代码设置选中行后,没有触发SelectionChanged事件,但是通过界面点击单元格或者选中行却是可以触发SelectionChanged事件的。
可能平时只设置this.dataGridView.Rows[index].Selected = true这行代码就可以满足要求了,界面上看确实是选中了的,但是如果除了上面提到的只设置这行代码是不能触发SelectionChanged事件的,那就不能满足你这个事件中的代码块功能的执行。除此之外还有一个问题,比如你在写行移动时,上下移动时需要在代码中设置选中行的,如果也只是用这一行代码设置选中行,你会发现界面上看到的行选中了,但是实际并没有选中,这就会影响你对当前行数据的正确获取,从而影响上下移动功能的效果。

所以,针对这两种情况带来的困扰,有两种方式解决方案:
1)在你设置选中行的代码块处,完成SelectionChanged的内容
2)(推荐)在设置选中行代码前,设置dataGridView.CurrentCell = null,就能触发SelectionChanged事件,详见下面代码
下见代码:

 private void DataGridView1_SelectionChanged(object sender, EventArgs e){var curRow = this.dataGridView1.CurrentRow;if (curRow == null)return;if (curRow.Cells[0].Value == null)return;var action = this.actions.Find(p => p.ActionName == curRow.Cells[0].Value.ToString());this.tb_describle.Text = action.ChiDescrible;}
//设置选中行if (this.dataGridView1.RowCount > 0){this.dataGridView1.CurrentCell = null;this.dataGridView1.Rows[0].Selected = true;this.dataGridView1.CurrentCell = this.dataGridView1.Rows[0].Cells[0];}

Datagridview代码设置选中行后,没有触发SelectionChanged事件相关推荐

  1. C#中datagridview选中行后textbox显示选中的内容

    我想让datagridview中某一行被选中时,textbox中显示选中的值,datagridview的选中模式是整行: this.dataGridView1.SelectionMode = Data ...

  2. C# dataGridView上下移动选中行

    /*DataGridView 实现行[Row]的上下移动,我这里用到了SelectedRows[0],而没用CurrentRow是有原因的    主要是这两段代码:    dataGridView1. ...

  3. C#中DataGridView移除选中行

    在项目开发中总会遇到DataGridview中移除多个选中行需求,而往往会遇到少删除一行问题,因为每次移除一行DataGridview数据DataGridview下标会立即改变,从而导致有些选中行未移 ...

  4. C# DataGridView控件选中行获取其值

    DataGridView的几个基本操作: 1.获得某个(指定的)单元格的值: dataGridView1.Row[i].Cells[j].Value; 2.获得选中的总行数: dataGridView ...

  5. C# DataGridView如何获取选中行的某个数据

    DataGridView的几个基本操作: 1.获得某个(指定的)单元格的值: dataGridView1.Row[i].Cells[j].Value; 2.获得选中的总行数: dataGridView ...

  6. html页面加载完成后会触发的事件_前端隐秘角落 - 页面渲染

    前言 如图所示,webkit内核浏览器的渲染过程(解析HTML,构建DOM树,解析CSS,构建CSSOM树 ,构建render树,布局layout,绘制painting),这些过程理解起来可能有些抽象 ...

  7. js 多选框被选中触发的事件_JS实现select选中option触发事件操作示例

    本文实例讲述了JS实现select选中option触发事件操作.分享给大家供大家参考,具体如下: 我们在用到下拉列表框select时,需要对选中的选项触发事件,其实本身没有触发事件方法,我们只有在se ...

  8. js 多选框被选中触发的事件_javascript多选框的触发过程详解

    这篇文章主要介绍了javascript 中select框触发事件过程的分析的相关资料,这里对select 触发过程进行了深入分析,帮助大家理解这部分内容,需要的朋友可以参考下 javascript 中 ...

  9. 移动端页面滚动后不触发touchend事件

    在移动端页面进行优化时,一般使用touch事件替代鼠标相关事件,用的较多的是使用touchend事件替代PC端的click和mouseup事件. 但是,touchend事件在页面滚动时有个问题.在滚动 ...

最新文章

  1. Datawhale组队学习周报(第021周)
  2. 优秀开发者和差的开发者之间区别
  3. 《软件定义网络:基于OpenFlow的SDN》一一2.5 本章总结
  4. 给你十年时间你可以做到吗?
  5. redis缓存路由为空_Springboot使用RedisTemplate优雅地操作redis
  6. AJAX将成为移动Web2.0时代首选开发平台
  7. AT1983-[AGC001E]BBQ Hard【dp,组合数学】
  8. 移动设备HTML5页面布局
  9. 浅谈V8引擎中的垃圾回收机制
  10. MySQL information_schema 系统库介绍
  11. 前端代码部署后通过html访问,将前端项目部署到nginx上
  12. libz.so.1: cannot open shared object file: No such file or directory
  13. Sql语句实现某列每条记录与同列最大值的差值计算
  14. 用VC++ 6.0实现视频捕捉
  15. Response.Redirect 打开这两种方法的一种新形式
  16. poj1270_toposort+回溯
  17. 数据分析 --- 如何处理脏数据
  18. Android monkey 压力测试
  19. 华为u8500在usb模式下logcat无法打印信息
  20. 杰奇运行在php7,帝国CMS7.5使用PHP7.x环境登录后台报错的解决方法!

热门文章

  1. datawhalechina-GNN组队学习 作业:PyG不同模块在PyG数据集上的应用
  2. 给想回家发展的河南人
  3. 使用花生棒(内网版)远程控制电脑
  4. 聚焦百度年会美女刘冬——IT听听看特别版
  5. 上一页、下一页功能的实现
  6. 表格属性cellspacing、cellpadding
  7. 设置libevent
  8. SprintBoot的@ComponentScan“踩坑”
  9. html+css+js实现post简易聊天室
  10. 2017.7.5训练赛 反思加总结