我正在研究一个简单的程序,它需要我能够选择一个图片框,并通过用鼠标拖动它将其移动到一个新的位置。这是我目前提出的所有相关代码。但是,当我运行该程序时,它会尝试移动到我想要的位置,然后它会恢复到之前的位置。如何通过单击并用鼠标按住对象来移动元素?
编辑:它在一个容器中。如果这是任何相关性。
变量
Dim startx As Integer
Dim starty As Integer
Dim endy As Integer
Dim endx As Integer
Dim finalx As Integer
Dim finaly As Integer
Dim mdown As Boolean
Dim valx As Boolean
Dim valy As Boolean
代码,以使图像移动
Private Sub picbox_MouseDown(sender As Object, e As System.Windows.Forms.MouseEventArgs) Handles picbox.MouseDown
startx = MousePosition.X
starty = MousePosition.Y
mdown = True
valx = False
valy = False
End Sub
Private Sub Main_MouseMove(sender As Object, e As System.Windows.Forms.MouseEventArgs) Handles Me.MouseMove
End Sub
Private Sub picbox_MouseMove(sender As Object, e As System.Windows.Forms.MouseEventArgs) Handles picbox.MouseMove
'Check if mouse=down
If mdown = True Then
endx = (MousePosition.X - Me.Left)
endy = (MousePosition.Y - Me.Top)
If valy = False Then
starty = endy - sender.top
valy = True
End If
If valx = False Then
startx = endx - sender.left
valx = True
End If
sender.left = endx - startx
sender.top = endy - starty
End If
End Sub
Private Sub picbox_MouseUp(sender As Object, e As System.Windows.Forms.MouseEventArgs) Handles picbox.MouseUp
mdown = False
valx = False
valy = False
End Sub
想你的代码用一个简单的形式,只是一个图片框。好消息是:它有效,坏消息是:我找不到你的错误。 – Steve
我确实在布局容器中有它。这可能与它有关吗? – nick122
这是一个winforms应用程序,对吧?你在哪种控制容器中拥有你的图片盒?在我的测试中,没有任何容器,直接在表单的客户区域,一切都按预期工作。 – Steve