7

我有一个用户控件,它是可滚动控件,我想更改它AutoScrollPosition(只有 X 值)。

我这样做是这样的:

int newScrollX = myFunction();
Point p = new Point(newScrollX, this.AutoScrollPosition.Y);
this.AutoScrollPosition = p;

newScrollX 得到了正确的值,p 得到了正确的点,但是在 AutoScrollPosition 设置的那一行之后,AutoScrollPosition 是 (0,0)。

问题是什么?

谢谢

4

1 回答 1

15

AutoScrollPosition 相当麻烦。

通常在执行此操作时会得到负值:

Point p = this.AutoScrollPosition;

但是在设置滚动位置时,您必须使用正值......所以要恢复完全相同的滚动位置,您必须反转负数:

this.AutoScrollPosition = new Point(-p.X, -p.Y)

否则,观察到的 AutoScrollPosition 将为 0,0。

于 2012-10-26T06:32:29.227 回答