winform DataGridViewがリフレッシュされ、スクロールバーが前回の位置に位置決めされます

2266 ワード

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;
            }
        }