Datagridview ScrollBar在绑定重置后失去焦点

时间:2013-11-10 00:52:23

标签: c# winforms visual-studio datagridview

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

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

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

这段代码很完美,但是,我遇到的唯一问题是每次重置后我在滚动条上丢失FOCUS。假设我滚动到底部,它会更新,我需要重新调整滚动条。这非常烦人。

我的问题与此问题完全相同:Scrollbar loses focus when datagridview refreshs its content

然而,我无法找到答案或找到解决这个问题的方法。

任何人都可以指出我正确的方法吗? 感谢

1 个答案:

答案 0 :(得分:0)

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

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