单击并拖动面板时移动表单

时间:2013-07-01 19:51:46

标签: vb.net winforms

当我点击并按住我的面板元素(因为我使用自定义GUI)时,我正试图让我的表单移动(就像你在其他应用程序上移动窗口一样)。

无论如何,我设法让它移动但问题是,当我点击它而不是像常规窗口一样移动时,窗体移动到我当前的光标位置(因为它读取光标的位置并将窗体的位置设置为位置,因此不需要移动它。)

这是我的代码,我该怎么做才能让它正常工作?

Dim Moving As Boolean = False


 Private Sub Panel1_MouseDown(sender As Object, e As MouseEventArgs) Handles Panel1.MouseDown
    Moving = True
    MouseMoveTimer.Start()
End Sub

Private Sub Panel1_MouseUp(sender As Object, e As MouseEventArgs) Handles Panel1.MouseUp
    Moving = False
    MouseMoveTimer.Stop()
End Sub

Private Sub MouseMoveTimer_Tick(sender As Object, e As EventArgs) Handles MouseMoveTimer.Tick
    Me.Location = Cursor.Position
End Sub

新代码

Dim diff As Point = Cursor.Position - curpoint
        Me.Location -= diff
        curpoint = Cursor.Position

1 个答案:

答案 0 :(得分:1)

您可以在每个计时器刻度中保存光标的位置,并在下一个刻度中查看它的变化程度。 然后将该更改添加到表单的位置。