2015-11-19 170 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))