【问题标题】:auto scroll in an ultragridview for infragistics在 Ultragridview 中自动滚动以进行基础设施
【发布时间】:2016-10-13 13:19:35
【问题描述】:

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

【问题讨论】:

    标签: c# .net infragistics ultrawingrid


    【解决方案1】:

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

    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

    【讨论】:

    • 那么超网格的目的是让用户无需手动滚动即可查看数据。如果滚动速度很快,有没有办法可以将它设置为 30 秒计时器?
    • 是的,但是您需要添加一个 Timer 并在 Timer 事件中运行 Activate。这意味着您需要将计数保存在某个地方并重用它
    • 我尝试使用循环,但它每次都会以某种方式使代码崩溃。没有错误显示。
    • 现在它不会使代码崩溃,但自动滚动不起作用!! :(
    • 不知道。我已经在 8000 行 UltraGrid 上测试过,没有任何问题。
    猜你喜欢
    • 2016-11-11
    • 1970-01-01
    • 2010-12-21
    • 2016-04-26
    • 1970-01-01
    • 2023-03-20
    • 2013-06-16
    • 1970-01-01
    • 2011-01-07
    相关资源
    最近更新 更多