问题描述
在一个DataGridView里绑定的数据源是一个DataView,里面的记录按时间排序。在我的程序处理中,当接受到一个消息时,希望将特定的行记录进行修改,更新其时间,这一行记录也会自动排序到最后。这些都没有什么问题,目前的问题是,如果本来选定了一行记录,假设总共有50条记录,本来手工选中了第5条记录,这时消息来了,修改第36行记录,第36行记录因为时间修改变成第49行记录,光标应该仍然选中第5行记录,但事实是,光标跳向了第36行记录,既不是原先选中的记录,也不是被修改的那条记录。消息到来的事件我是这样处理的:*****************************************************DataRow[]rows=DataTable.Select("");//通过消息内容找到需要修改的记录DataRowrow=null;if(rows.Length==1){row=rows[0];row["Time"]=DateTime.Now;//跟踪代码到这里的时候,执行该行之前,就进入了DataGridView的SelectionChanged事件}*****************************************************我觉得应该是DataGridView的某个属性使得程序执行修改的时候,自动发生了跳转的动作,因为看另一个模块的类似处理是不会发生跳转事件的,可是对照了半天,实在看不出两个DataGridView的属性设置有什么不一样的,拜托各位看到的,能否帮忙解惑啊,不知有没有谁有过类似经验。
解决方案
解决方案二:
怎么都没有人回答啊,大家都没有遇见过这样的问题吗?
解决方案三:
没见过你种问题不好回答
解决方案四:
关注
解决方案五:
友情up一下
解决方案六:
Upfriendly
解决方案七:
这个问题不复杂。你可以通过遍历datagridview某个列(比如id列)在各行的值来定位到相应的行,再通过设定datagridview的row的状态或currentcell就可以搞定当前行和行选择的问题。