关于鼠标事件mousemove的一段代码
为什么我实验后 在拖动图片到达边界处时 会越界或拖动不顺畅呢 是不是这样限制图片移动范围的方法不对啊
'鼠标拖动图片
Private Sub Picedit_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Picedit.MouseDown
If Not (Picedit.Image Is Nothing) Then
If e.Button = MouseButtons.Left Then
Me.Cursor = System.Windows.Forms.Cursors.Hand
mouseX = e.X
mousey = e.Y
jk = 1
Else
Exit Sub
End If
End If
End Sub
Private Sub Picedit_MouseMove(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Picedit.MouseMove
If Not (Picedit.Image Is Nothing) Then
If e.Button = MouseButtons.Left Then
If jk = 1 Then
If Picedit.Width < panel.Width Then
Exit Sub
End If
If Picedit.Height < panel.Height Then
Exit Sub
End If
If Picedit.Width >= panel.Width And Picedit.Width >= panel.Width Then
Picedit.Left = Picedit.Left + e.X - mouseX
Picedit.Top = Picedit.Top + e.Y - mousey
Picedit.Refresh()
End If
If Picedit.Width + Picedit.Left <= panel.Width Then
Picedit.Left = panel.Width - Picedit.Width
Picedit.Refresh()
jk = 2
End If
If Picedit.Height + Picedit.Top <= panel.Height Then
Picedit.Top = panel.Height - Picedit.Height
Picedit.Refresh()
jk = 2
End If
If Picedit.Left >= 0 Then
Picedit.Left = 0
Picedit.Refresh()
jk = 2
End If
If Picedit.Top >= 0 Then
Picedit.Top = 0
Picedit.Refresh()
jk = 2
End If
Else
Exit Sub
End If
End If
End If
End Sub
Private Sub Picedit_MouseUp(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Picedit.MouseUp
If Picedit.Image Is Nothing Then
Exit Sub
End If
If jk = 2 Then
If Picedit.Width + Picedit.Left < panel.Width Then
Picedit.Left = panel.Width - Picedit.Width
Picedit.Refresh()
Exit Sub
End If
If Picedit.Height + Picedit.Top < panel.Height Then
Picedit.Top = panel.Height - Picedit.Height
Picedit.Refresh()
Exit Sub
End If
If Picedit.Left > 0 Then
Picedit.Left = 0
Picedit.Refresh()
Exit Sub
End If
If Picedit.Top > 0 Then
Picedit.Top = 0
Picedit.Refresh()
Exit Sub
End If
Me.Cursor = System.Windows.Forms.Cursors.Default
jk = 3
End If
End Sub