2013-11-10 43 views
1

我有一個DataGridView,我需要每3秒更新一次內容。我能夠保存DGV位置使用此代碼:Datagridview ScrollBar重新綁定後鬆動它的焦點

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

通過創建新的vScrollBar並以編程方式更改DataGridView的當前行值來解決此問題。

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