我有一个用户控件,它是可滚动控件,我想更改其AutoScrollPosition
(仅限X值)。
我这样做:
int newScrollX = myFunction();
Point p = new Point(newScrollX, this.AutoScrollPosition.Y);
this.AutoScrollPosition = p;
newScrollX获取正确的值,p得到正确的点,但在AutoScrollPosition设置行之后,AutoScrollPosition为(0,0)。
有什么问题?
由于
答案 0 :(得分:14)
AutoScrollPosition非常麻烦。
通常在执行此操作时会得到负值:
Point p = this.AutoScrollPosition;
但是在设置滚动位置时你必须使用正值...所以要恢复完全相同的滚动位置,你必须反转负数:
this.AutoScrollPosition = new Point(-p.X, -p.Y)
否则,AutoScrollPosition将为观察到的0,0。