【问题标题】:Datagridview ScrollBar Looses it's focus after binding resetDatagridview ScrollBar 在绑定重置后失去焦点
【发布时间】:2013-11-10 00:52:22
【问题描述】:

我有一个 DataGridView,我需要每 3 秒更新一次内容。我可以使用此代码保存 DGV 位置:

    private void UpdateBindings()
    {
        int _ScrollPosition = MonitorGridView.FirstDisplayedScrollingRowIndex;

        _BS.ResetBindings(false); // _BS = BindingSource
        if (_ScrollPosition > -1)
        {
            MonitorGridView.FirstDisplayedScrollingRowIndex = _ScrollPosition;
        }
    }

此代码运行良好,但是,我面临的唯一问题是每次重置后我的滚动条上的焦点都丢失了。假设我正在滚动到底部,并且它更新了,我需要再次重新抓取滚动条。这很烦人。

我的问题和这个完全一样:Scrollbar loses focus when datagridview refreshs its content

但是,我无法找到答案或想办法解决这个问题。

谁能指点我正确的方法? 谢谢

【问题讨论】:

    标签: c# winforms visual-studio datagridview


    【解决方案1】:

    通过创建新的 vScrollBar 并以编程方式更改 DataGridView 的当前行值解决了该问题。

        private void vScrollBar1_Scroll(object sender, ScrollEventArgs e)
        {
            if (e.NewValue > -1 && e.NewValue < MonitorGridView.Rows.Count)
            {
                MonitorGridView.FirstDisplayedScrollingRowIndex = e.NewValue;
            }
        }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-06-30
      • 1970-01-01
      • 2020-12-18
      相关资源
      最近更新 更多