Целью является панорамирование формы или изображения в форме при щелчке левой кнопкой мыши и перетаскивании мыши. Нижеприведенный код отлично подходит для моих нужд, но есть только одна проблема. Когда я оставил клик и перетащил мышь, форма развертки быстрее, чем мышь, что делает ее неудобной. Есть ли какой-либо метод, который я могу использовать для создания формы pan с той же скоростью как моя мышь? Вот мой код:Pan a Image with Left Click: Скорость прокрутки быстрее, чем мышь (.NET)
Private leftClick as Point
Private Sub Form_OnMouseDown(sender as Object, e as MouseEventArgs) Handles Form.MouseDown
leftClick = e.Position
End Sub
Private Sub Form_OnMouseMove(sender as Object, e as MouseEventArgs) Handles Form.MouseMove
'Resolves issue where mouse keeps on moving even if not
Static MyPoint As New Point
If e.Location = MyPoint Then Exit Sub
MyPoint = e.Location
'If we left click anywhere on form, pan the form
If e.Button = Windows.Forms.MouseButtons.Left Then
Dim DeltaX As Integer = (leftClick.X - e.x)
Dim DeltaY As Integer = (leftClick.Y - e.y)
Dim newX as Integer = DeltaX - Me.AutoScrollPosition.X
Dim newY as Integer = DeltaY - Me.AutoScrollPosition.Y
'Then we set the new autoscroll position.
Me.AutoScrollPosition = New Point(newX, newY)
End If
End Sub
Спасибо!
Вы устанавливаете прокрутку непосредственно на перемещение мыши. Просто уменьшите его, чтобы прокручивать меньше (измените свой калькулятор на Delta) – Plutonix
Правильно, я могу масштабировать его, но как бы масштабировать его так, чтобы он соответствовал скорости движения мыши? – Mike