2011-03-01 90 views
7

在Windows窗體上我有一個DataGridView控件,其中包含由數據源(數據綁定)填充的記錄。每條記錄都提供一個數據對象。DataGridView控件在屬性更改時滾動到頂部

並非所有的行都顯示出來:只有前10個例子。所以用戶可以向下滾動查看其他記錄。這件事沒什麼特別的。

但是當用戶滾動行的對象的數據性質正在發生變化後,點擊一排,這刷新DataGridViewand - 「滾動」到數據網格的頂部(也許整個DataGridView爽快)。這是不可取的。

如何在記錄更新期間保持當前滾動位置?

回答

7

您可以使用DataGridView的FirstDisplayedScrollingRowIndex屬性。

它獲取/設置DGV上顯示的第一行的索引。

使用方法如下:

 int rowIndex = dataGridView.FirstDisplayedScrollingRowIndex; 

     // Refresh your DGV. 

     dataGridView.FirstDisplayedScrollingRowIndex = rowIndex; 

當然,這是不行的完全正確,如果排序或添加/刪除行的DGV(你是說你這樣的更新,也許你是OK)。

+0

嗨Jay。這工作。謝謝你的提示。 – robertpnl 2011-03-01 20:31:26

+0

我有同樣的問題。我發現它是在我的DataSource上調用AcceptChanges()來完成的,所以我通過在調用之前保存FirstDisplayedScrollingRowIndex的值並在之後恢復它來修復它。 – JonP 2017-08-02 16:55:56

相關問題