可以用鼠标滚动
Scrollable with the mouse
我对我的用户控件进行了平移,出于某种原因,如果只有 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,不应更改。有谁知道它为什么这样做?这是我应该从这个 class 和变量中预期的行为吗?
汉斯·帕桑特回答
You did it correctly for Y but not for X. You must use -AutoScrollPosition.X, note the negative sign.
代码的实际答案是
AutoScrollPosition = Point.Round(New PointF(-AutoScrollPosition.X, MouseChange.Y - AutoScrollPosition.Y))
我对我的用户控件进行了平移,出于某种原因,如果只有 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,不应更改。有谁知道它为什么这样做?这是我应该从这个 class 和变量中预期的行为吗?
汉斯·帕桑特回答
You did it correctly for Y but not for X. You must use -AutoScrollPosition.X, note the negative sign.
代码的实际答案是
AutoScrollPosition = Point.Round(New PointF(-AutoScrollPosition.X, MouseChange.Y - AutoScrollPosition.Y))