winform DataGridViewがリフレッシュされ、スクロールバーが前回の位置に位置決めされます
2266 ワード
DataGridView出力リストは、スクロールバーでよく使用されます.
リストを再ロードした後、前回のスクロールバーがあった場所にナビゲートすると、次の方法が実現します.
1 DataGridViewにScrollイベントをバインドします.
2 Scrollイベントでやるべきことは、スクロールバーの移動位置の数値をそれぞれ記録します.
次の点に注意してください.
横スクロールバーは画素ビット数を記録し、
スクロールバーに記録された行のインデックス値.
リストを再ロードした後、前回のスクロールバーがあった場所にナビゲートすると、次の方法が実現します.
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;
}
}