c# - 在基础设施的 ultragridview 中自动滚动

标签 c# .net infragistics ultrawingrid

我在我的程序中使用 Infragistics UltraGridView。是否可以将它设置为自动滚动 UltraGridView 从顶部开始到底部然后将其重置回顶部?此外,UltraGridView 将设置为 AutoRefresh。有什么想法吗?

最佳答案

你可以像这样简单地构建一个紧密的循环

foreach (UltraGridRow row in grid.Rows)
{
    row.Activate();
}

但是不清楚你写这段代码的目的是什么。在网格上滚动时,您的用户可能无法理解任何数据。

相反,如果您的目的是将特定行设置为网格区域中的第一行,那么您应该按照此行工作

grid.ActiveRowScrollRegion.FirstRow = grid.Rows[500];

(假设你有超过 500 行当然)

如果您想减慢滚动速度,则可以添加一个计时器并在 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

关于c# - 在基础设施的 ultragridview 中自动滚动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40022169/

相关文章:

c# - 关于 StreamReader

c# - 将函数包装为异步任务

asp.net-mvc-5 - 运行 Infragistics 树控件时对象不支持属性或方法 'igTree' 错误

javascript - Ignite UI - (jQuery) - 无法使用 ig.excel.WorksheetCellComment 在单元格中添加注释

c# - 如何在企业项目中使用依赖注入(inject)

c# - 向我解释这个 SELECT dbo.TableName(@variable) 语句

C#:SQL 从 SqlDataReader 获取最后一行?

c# - 更改 XAM Data Presenter 一行的背景颜色

javascript - Dynamics CRM - 从自定义设置页面添加/删除事件

c# - 在 ServiceStack Razor View 中获取 HttpCompileException(自托管)