DevExpress中如何滚动GridView定位至FocusedRowHandle选中行
DevExpress GridView 自动滚动到选中行实现方案
针对通过FocusedRowHandle标记焦点行、SelectRow方法选中行两种场景,直接调用控件内置方法即可实现滚动条自动定位到目标行的效果,不需要手动计算滚动条偏移量。
具体实现代码
场景1:定位FocusedRowHandle指定的焦点行
设置完焦点行句柄后,调用MakeRowVisible方法传入行句柄,控件会自动调整纵向滚动条位置,让目标行显示在可视区域内:
// 替换为你实际要定位的行句柄 int targetRowHandle = 10; // 设置焦点行 gridView1.FocusedRowHandle = targetRowHandle; // 核心方法:自动滚动到目标行位置 gridView1.MakeRowVisible(targetRowHandle);
如果需要让目标行显示在可视区域的居中位置,可以追加配置:
gridView1.OptionsBehavior.NavigationToLastRowOnExpand = true; gridView1.Focus();
场景2:定位SelectRow方法选中的行
多选模式下用SelectRow选中行后,先获取需要定位的目标选中行句柄,再调用MakeRowVisible即可,以下示例定位到第一个选中行:
// 选中目标行 gridView1.SelectRow(targetRowHandle); // 获取选中行集合,取需要定位的行句柄即可,示例取第一个选中行 int[] selectedHandles = gridView1.GetSelectedRows(); if (selectedHandles.Length > 0) { gridView1.MakeRowVisible(selectedHandles[0]); }
注意事项:
- 如果目标行位于折叠的分组、或者主从表的折叠从表中,
MakeRowVisible会自动展开对应的分组/从表行,不需要额外编写展开逻辑。- 如果在数据绑定
DataBind()方法执行前调用MakeRowVisible会不生效,需要等绑定完成、GridView行加载完成后再调用定位逻辑。
内容的提问来源于stack exchange,提问作者fatmanurbutunerr
相关产品推荐
相关产品推荐

