日期:2014-05-19  浏览次数:20681 次

关于Winform中Datagirdview控件的数据定位问题
需求描述:
现在有某个dataset绑定到datagridview控件中(datagridview控件中显示了数据集中的所有数据),我想通过搜索找到dataset中的某条需要的记录,然后再在datagridview中定位该条记录(焦点定位到该条记录,该行背景色变红等)。

目前的实现方法:
通过dataset的主健搜索我在dataset中查找到了一条我需要的数据(myDataRow),并且通过int   i   =   Array.IndexOf(myDataSet.Tables[ "myTable "].Select(),myDataRow);方法返回了该条记录在数据集中的索引,然后通过myDGV.Rows[i].Selected   =   true;方法在datagridview中对这条记录定位。

遇到的问题:
在datagridview控件中的数据不排序的情况下,定位正确;但是在事先对datagridview中数据进行排序后再调用上述实现方法,则出现定位不准确的情况,原因是i仅仅是数据库中的该数据的索引号,这个索引号与datagridview中的数据索引号并不一致。

求解决方法,初学C#,各位给点建议。

------解决方案--------------------
datagridview本身不能搜索的,要搜索只有循环判断的,不也一样吗?
------解决方案--------------------
你直接在datagridview搜索得了。
------解决方案--------------------
可以用循环扫描某一个栏位(最好是PK)
取得他的位置int i
然后把当前的光标强制付给datagirdview
// 把选中的行移动到用户新增的那行(最后一笔)
dataGridViewSendingRule.CurrentCell = dataGridViewSendingRule.Rows[// 把选中的行移动到用户新增的那行(最后一笔)
dataGridViewSendingRule.CurrentCell = dataGridViewSendingRule.Rows[i]Cells[0];
------解决方案--------------------
更正一下
刚刚那个不对
可以用循环扫描某一个栏位(最好是PK)
取得他的位置int i
然后把当前的光标强制付给datagirdview
datagirdview.CurrentCell = datagirdview.Rows[i]Cells[0];