我有一个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
然而,我无法找到答案或找到解决这个问题的方法。
任何人都可以指出我正确的方法吗? 感谢
答案 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;
}
}