【发布时间】:2016-10-13 13:19:35
【问题描述】:
我在我的程序中使用Infragistics UltraGridView。是否可以将其设置为自动滚动 UltraGridView 从顶部到底部,然后将其重置回顶部? UltraGridView 也被设置为AutoRefresh。有什么想法吗?
【问题讨论】:
标签: c# .net infragistics ultrawingrid
我在我的程序中使用Infragistics UltraGridView。是否可以将其设置为自动滚动 UltraGridView 从顶部到底部,然后将其重置回顶部? UltraGridView 也被设置为AutoRefresh。有什么想法吗?
【问题讨论】:
标签: c# .net infragistics ultrawingrid
您可以像这样简单地构建一个紧密的循环
foreach (UltraGridRow row in grid.Rows)
{
row.Activate();
}
但不清楚您编写此代码的目的是什么。当数据在网格上滚动时,您的用户可能无法理解任何数据。
相反,如果您的目的是将特定行设置为网格区域中的第一行,那么您应该沿着这条线工作
grid.ActiveRowScrollRegion.FirstRow = grid.Rows[500];
(当然假设你有超过 500 行)
如果您想减慢滚动速度,您可以添加一个 Timer 并在 Tick 事件中运行 Activate 调用。在这种情况下,您可以编写这样的类
public class SlowScroller
{
private UltraGridRow current = null;
private UltraGrid grd = null;
private System.Windows.Forms.Timer t = null;
public SlowScroller(UltraGrid grid)
{
grd = grid;
t = new System.Windows.Forms.Timer();
}
public void Start(int interval)
{
t.Interval = interval;
t.Tick += onTick;
t.Start();
}
public void Stop()
{
if (t.Enabled)
t.Stop();
}
private void onTick(object sender, EventArgs e)
{
if(current == null)
current = grd.Rows[0];
else
current = current.GetSibling(SiblingRow.Next);
current.Activate();
}
}
并用
调用它SlowScroller ss = new SlowScroller(grid);
ss.Start(500); // Scroll every 500 milliseconds
注意 Stop 方法的存在。这是必要的,因为即使您丢弃表单,您也不希望此类继续触发 Tick 事件。因此,您需要在 Form_Closing 事件处理程序中调用 Stop
【讨论】: