2016-02-12 104 views
0

我有兩個DataGridViews,一個在另一個之上,在我的形式與同步滾動條,如answer。但是,同步只是一種方式,因爲我已經隱藏了頂部網格的滾動條,只顯示兩個網格的滾動條。在滾動滾動條時,同步工作正常,但頂部網格的HorizontalScrollingOffset(具有以編程方式滾動的隱藏滾動條的網格)將在網格調整大小時重置爲0。DataGridViews與同步滾動條:滾動條位置重置調整大小

我認爲這是因爲頂部網格隱藏了滾動條,所以滾動條無法保存滾動值,但尚未能找到解決方案/解決方法。 有沒有人知道如何防止帶有隱藏滾動條的DataGridView在重新調整DataGridView的大小時重置?

回答

1
private int scrollPosition = 0; 

    private void dataGridView_Scroll(object sender, ScrollEventArgs e) 
    { 
     // While scrolling, keep track of the scroll position 
     if (e.ScrollOrientation == ScrollOrientation.HorizontalScroll) 
     { 
      this.scrollPosition = e.NewValue; 
     } 
    } 

    private void dataGridView_Resize(object sender, EventArgs e) 
    { 
     // Re-scroll back to where we were 
     dataGridView.HorizontalScrollingOffset = this.scrollPosition; 
    } 
+0

這個伎倆。我原先想到了這個解決方案,但後來忽略了它,因爲我認爲這會讓網格在調整大小時來回跳動。然而,事實證明,它工作順利,似乎沒有任何問題。謝謝! – JPProgrammer