可以用鼠标滚动

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))