2011-03-18 97 views
2

我有一個窗體上的DataGridView,當我收到新的數據,我將記錄綁定到DataGridView一個的BindingList的開始。當有足夠的記錄顯示垂直滾動條時,它將停留在列表頂部。所以我總是看到列表頂部的最新記錄。這項工作很好,至此。從選擇的BindingList最後一行刪除最後一個記錄曹景偉的DataGridView到滾動

但是,當我添加代碼以刪除列表中最後一條記錄時,列表中的最後一條記錄會自動選中,導致滾動條一直「滾動」到列表中的最後一條記錄在DataGridView的底部。我甚至之前調用RemoveAt移除後加入到ClearSelection()的調用,但它仍然滾動至底部。

我怎樣才能防止這種行爲?

回答

1

記錄被刪除之前,你總是可以讓你選擇一個DataGridViewRow的索引或其他這樣的標識符。

在BindingSource的Changed事件,然後你可以分析你的數據,並設置正確的行。

要設置第一個顯示的DataGridViewRow,使用方法:

DataGridView1.FirstDisplayedScrollingRowIndex; 

要選擇相同的DataGridViewRow,用途:

DataGridView1.Rows[DataGridView1.FirstDisplayedScrollingRowIndex].Selected = true; 

記住錯誤檢查,以確保索引值不爲-1(無選擇)。

+0

只是去嘗試,並有到任何變化。 – Dave 2011-03-18 16:23:14