перемещать форму при нажатии на панель vb.net - PullRequest
0 голосов
/ 25 мая 2020

У меня есть форма form1 без стиля границы, и я хочу, чтобы эта форма двигалась, когда пользователь перемещает панель1. после выполнения простого поиска в стеке я нашел тот же случай с этим решением C#

private void panel1_MouseMove(object sender, MouseEventArgs e)
{
if (e.Button == MouseButtons.Left)
{
    this.Location = new Point(Cursor.Position.X + e.X , Cursor.Position.Y + e.Y);
}
}

для моего случая я использую vb. net, поэтому я пытаюсь сделать аналогичный код, но мне не удалось:

Private Sub Panel1_MouseMove(sender As Object, e As MouseEventArgs) Handles GunaPanel1.MouseMove
    If e.Button = MouseButtons.Left Then
        MainDashboard.Location = New Point(Cursor.Position.X + e.X, Cursor.Position.Y + e.Y)
    End If
End Sub

1 Ответ

0 голосов
/ 25 мая 2020

Вот решение: MouseIsDown и MouseIsDownLo c - переменные уровня модуля.

    Private MouseIsDown As Boolean = False
    Private MouseIsDownLoc As Point = Nothing
    Private Sub Panel1_MouseMove(sender As Object, e As MouseEventArgs) Handles Panel1.MouseMove

        If e.Button = MouseButtons.Left Then
            If MouseIsDown = False Then
                MouseIsDown = True
                MouseIsDownLoc = New Point(e.X, e.Y)
            End If

            Me.Location = New Point(Me.Location.X + e.X - MouseIsDownLoc.X, Me.Location.Y + e.Y - MouseIsDownLoc.Y)
        End If
    End Sub
    Private Sub Panel1_MouseUp(sender As Object, e As MouseEventArgs) Handles Panel1.MouseUp
        MouseIsDown = False
    End Sub
...