关于WinForm下DataGrid排序的一个疑惑,望高手给予解答!在线

heartwell 2005-11-03 09:56:05
在WinForm中,RowHeader上会有一个黑箭头表示当前所处的RowNumber,正常情况下可以使用CurrentRowIndex或者CurrentCell.RowNumber来获取当前数据所在行。

如果此时通过单击ColumnHeader,DataGrid会对数据进行排序,排序后RowHeader的那个黑箭头位置不变,但已不是原来的数据了。

现在,我需要在单击排序后重新获取当前游标(黑箭头)所在行的某个数据,该如何处理?

我已试过通过MouseUp事件来获取,但由于排序是在MouseUp完成之后才发生的,因此在MouseUp中获取的数据是排序之前而非排序之后的。
...全文
214 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
heartwell 2005-11-03
  • 打赏
  • 举报
回复
但不能避免用户排序吧?我的问题是,如何获取在单击ColumnHeader排序完成之后去获取当前行的数据?
heartwell 2005-11-03
  • 打赏
  • 举报
回复
这是取数据,但我现在需要知道的是在何时取数据,也就是说,有没有一个类似于Sorted的事件,表示排序完成了。
zeusvenus 2005-11-03
  • 打赏
  • 举报
回复
添加设计时支持好像没有多大必要吧,为什么不在绑定前就在sql里做好排序呢?
zwfhome1 2005-11-03
  • 打赏
  • 举报
回复
dataGrid1[dataGrid1.CurrentCell.RowNumber,0].ToString().Trim();

这种方式的当前行就是焦点所在的行,即鼠标点击的,
BearRui 2005-11-03
  • 打赏
  • 举报
回复
应该这样取数据,比如你个
DataSet _ds;
dataGrid1.DataSoucre = _ds;
dataGrid1.DataMember = "table1";

//取当前选中的行
DataRow _rowCurrent = _ds.Tables[0].Rows[this.BindingContext[_ds,"table1"].Position];

如果你是下面这样绑定的,那取的方式又有点不同,分清楚了。
DataSet _ds;
dataGrid1.DataSoucre = _ds.Tables[0];


//取当前选中的行
DataRow _rowCurrent = _ds.Tables[0].Rows[this.BindingContext[_ds.Tables[0].Position];
q_po_o 2005-11-03
  • 打赏
  • 举报
回复
up...
你再顶吧
heartwell 2005-11-03
  • 打赏
  • 举报
回复
没人回答吗?
heartwell 2005-11-03
  • 打赏
  • 举报
回复
自己顶一下...
heartwell 2005-11-03
  • 打赏
  • 举报
回复
关键在何时获取当前行?比如说原来当前行RowIndex=2,排序前的数据datagrid[2,0] = "a",现在,我需要知道排序后的RowIndex=2的[2,0]的值是什么,什么时候去做这个操作?
zwfhome1 2005-11-03
  • 打赏
  • 举报
回复
dataGrid1[dataGrid1.CurrentCell.RowNumber,0].ToString().Trim();
zwfhome1 2005-11-03
  • 打赏
  • 举报
回复
datagrid[row,col]
方式取数据
也可以取当前行,当前列
heartwell 2005-11-03
  • 打赏
  • 举报
回复
问题已解决,最终还是BindingContext起效,公司的MVP出手就是不同凡响,结帖了。
heartwell 2005-11-03
  • 打赏
  • 举报
回复
一来DataGrid没有RowChange事件,二来即使有也没用,我需要的时在单击ColumnHeader之后,去获取自动排序后的行数据。等待答案中...
feiyun0112 2005-11-03
  • 打赏
  • 举报
回复
rowchange事件
jxufewbt 2005-11-03
  • 打赏
  • 举报
回复
up
LGame 2005-11-03
  • 打赏
  • 举报
回复
学习

110,533

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧