2015-11-19 167 views
0

我在我的用戶控件上出現了一個平移,出於某種原因,如果只有X或只有Y發生了變化,它會將它們設置回0.我有它,如果x = 0或y = 0基於AutoScrollPosition自動將其設置爲與之前相同的位置。因此,如果AutoScrollPosition.X = -67,我將代碼中的新位置設置爲之前的AutoScrollPosition.X。用鼠標滾動

 `AutoScrollPosition = Point.Round(New PointF(AutoScrollPosition.X, MouseChange.Y - AutoScrollPosition.Y)) ` 

System.Drawing.Point.AutoScrollPosition.X變成0,它不應該改變。有誰知道它爲什麼這樣做?這是我應該從這個類和變量中預期的行爲嗎?

+2

您正確地用於Y但不這樣做是爲了X.必須用'-AutoScrollPosition.X',注意負號。你的財產製定者想要負面的價值觀是一個長期的故事,並不那麼直觀。只需修復它。 –

+0

你爲什麼不把它作爲答案發布? –

+0

因爲我沒有時間講述這個漫長的故事。只需修復它。 –

回答

1

漢斯帕桑特答案

您正確地用於Y但不這樣做是爲了X.必須使用-AutoScrollPosition.X,注意負號。

與代碼實際的答案是

AutoScrollPosition = Point.Round(New PointF(-AutoScrollPosition.X, MouseChange.Y - AutoScrollPosition.Y))