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 に答える