关于devexpress 的 gridControl的几个小问题

sgyiliya 2012-04-26 02:29:45
1,点击表格内的任一格时,该格里面会有一个光标不停闪烁,如何把这个光标去掉?

2,在鼠标滚轮上下滚动时,如何让焦点行跟随着滚轮上下移动?

3,程序中有个定时器不断地刷新表格数据,可是每次刷新后,焦点行都自动定位到第一行,如何让焦点行定位到上一次刷新时的位置呢?(即类似于书签的功能)
...全文
423 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
a471048617 2014-09-30
  • 打赏
  • 举报
回复
请问大神,Dev的定时器是用什么控件实现的?
熙风 2012-04-26
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 的回复:]

刚才同事帮我搜索了,用“gridcontrol 滚轮”关键字找到了解决方案,调试后的代码如下:谢谢大侠们。

C# code

private void gridView_Ter_Out_MouseWheel(object sender, MouseEventArgs e)
{
int MouseToMove = e.Delta * ……
[/Quote]

sgyiliya 2012-04-26
  • 打赏
  • 举报
回复
刚才同事帮我搜索了,用“gridcontrol 滚轮”关键字找到了解决方案,调试后的代码如下:谢谢大侠们。


private void gridView_Ter_Out_MouseWheel(object sender, MouseEventArgs e)
{
int MouseToMove = e.Delta * SystemInformation.MouseWheelScrollLines / 120;

if (MouseToMove > 0 && gridView_Ter_Out.FocusedRowHandle > 3 )//向上滚动
{
gridView_Ter_Out.FocusedRowHandle = gridView_Ter_Out.FocusedRowHandle - 3;
}

if (MouseToMove < 0 && gridView_Ter_Out.FocusedRowHandle < gridView_Ter_Out.RowCount -3 )//向下滚动
{
gridView_Ter_Out.FocusedRowHandle = gridView_Ter_Out.FocusedRowHandle + 3;
}
}
熙风 2012-04-26
  • 打赏
  • 举报
回复
问题2不好解决,应该还要算高度,,再根据滑轮移动位置去选中列表焦点
sgyiliya 2012-04-26
  • 打赏
  • 举报
回复
1和3都好了,

可惜就是2无法解决。再顶一下。
熙风 2012-04-26
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 的回复:]

1,设置了OptionsBehavior>ReadOnly=true,结果还是有光标闪烁。

2,只有MouseWheel事件,在这个事件里面怎么判断是向上滚动还是向下滚动呢?
[/Quote]

将OptionsBehavior>Editable=false;也设置一下
sgyiliya 2012-04-26
  • 打赏
  • 举报
回复
1,设置了OptionsBehavior>ReadOnly=true,结果还是有光标闪烁。

2,只有MouseWheel事件,在这个事件里面怎么判断是向上滚动还是向下滚动呢?
熙风 2012-04-26
  • 打赏
  • 举报
回复
1,将列表设置为只读,gvlist>OptionsBehavior>ReadOnly=true;
2,问题2要结合一个imagecomboxedit控件就很要解决了
3,每次刷新之前记录focusedRowHandle,刷新后循环列表,this.gridView1.FocusedRowHandle =focusedRowHandle;就可以了
qldsrx 2012-04-26
  • 打赏
  • 举报
回复
1、设置不可编辑即可。
2、滚动事件里面设置选中行。
3、默认焦点不会变的。
  • 打赏
  • 举报
回复
关于定位到行时
可以这样
CustomDrawCel事件中给行加颜色进行定位
DataRow foucesRow = gridConsulationView.GetDataRow(gridConsulationView.FocusedRowHandle);获得焦点行
在grid里可以通过foucesRow 中的数据找到

类似
DataTable dt = this.gridControl1.DataSource as DataTable;//取得左侧大列表的数据源
int i = 0;
foreach (DataRow myrow in dt.Rows)//循环遍历Datatable
{
i = i + 1;
if (myrow["NOOFINPAT"].ToString() == noofinpat)
{
this.gridView1.FocusedRowHandle = i - 1;
//this.gridView1.SelectRow
}
}

110,543

社区成员

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

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

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