1. 程式人生 > >winform DataGridView 重新整理,滾動條定位到上一次的位置

winform DataGridView 重新整理,滾動條定位到上一次的位置

DataGridView  輸出列表,經常會用到滾動條。

在重新載入列表後,如果還要定位到上一次滾動條所在的位置,那下面的方法就能實現,

1  給DataGridView   繫結Scroll 事件。

2  Scroll 事件要做的事,分別記錄滾動條移動位置的數值。

用 e.ScrollOrientation 來判斷當前移動的哪個方向的滾動條,然後用e.NewValue獲取數值

需要注意的是 :

橫向滾動條記錄的是畫素位數,

豎向滾動條記錄的行的索引值。

	int VerticalScrollIndex = 0;

	int HorizontalOffset = 0;




        private void dataGridView1_Scroll(object sender, ScrollEventArgs e)
        {
            if (e.ScrollOrientation == ScrollOrientation.VerticalScroll)
            {
                VerticalScrollIndex = e.NewValue;
            }
            else if(e.ScrollOrientation == ScrollOrientation.HorizontalScroll){
                HorizontalOffset = e.NewValue;
            }
        }	 
3 重新整理列表後,重新設定滾動條位置值
dataGridView1.FirstDisplayedScrollingRowIndex = VerticalScrollIndex;
dataGridView1.HorizontalScrollingOffset = HorizontalOffset;
	int VerticalScrollIndex = 0;

	int HorizontalOffset = 0;




        private void dataGridView1_Scroll(object sender, ScrollEventArgs e)
        {
            if (e.ScrollOrientation == ScrollOrientation.VerticalScroll)
            {
                VerticalScrollIndex = e.NewValue;
            }
            else if(e.ScrollOrientation == ScrollOrientation.HorizontalScroll){
                HorizontalOffset = e.NewValue;
            }
        }