Перемещение формы без заголовка

Я пытался переместить форму, у которой нет заголовка. Я использую панель, где должна быть заголовок. Это как можно ближе к этому. Когда вы посмотрите на мой код, вы можете смеяться:)

Сейчас вы не можете переместить его с помощью холста, но вы можете переместить его с помощью события мыши. Когда я перемещаю его с формой, он падает вниз и вправо. Может кто-нибудь, ПОЖАЛУЙСТА, скажите мне, где я иду не так. Я предполагаю, что это потому, что нет никакого значения для переменных a и b в сабе MouseMove.

Private Sub forml_MouseDown(sender As Object, e As MouseEventArgs) Handles Panel.MouseDown
    Dim newPoint As New System.Drawing.Point()
    Dim a As Integer
    Dim b As Integer

    a = Panel.MousePosition.X - Me.Location.X
    b = Panel.MousePosition.Y - Me.Location.Y
End Sub

Private Sub form1_MouseMove(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles MyBase.MouseMove
    Dim newPoint As New System.Drawing.Point()

    Dim a As Integer
    Dim b As Integer

    If e.Button = MouseButtons.Left Then
        newPoint = Panel.MousePosition
        newPoint.X = newPoint.X - (a)
        newPoint.Y = newPoint.Y - (b)
        Me.Location = newPoint
    End If
End Sub

Я ДЕЙСТВИТЕЛЬНО оценил бы некоторую помощь.

1 ответ

Я получил это на работу! Вы получили это, Ганс.. Я сделал членов класса a и b и обработал панель с помощью кода, который вы увидите ниже. Спасибо вам обоим за помощь.

:это работает

 Private Sub planel_MouseDown(sender As Object, e As MouseEventArgs) Handles Panel.MouseDown

        Dim newPoint As New System.Drawing.Point()

        a = Panel.MousePosition.X - Me.Location.X
        b = Panel.MousePosition.Y - Me.Location.Y

    End Sub
    Private Sub panel_MouseMove(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Panel.MouseMove

        Dim newPoint As New System.Drawing.Point()

        If e.Button = MouseButtons.Left Then

            newPoint = Panel.MousePosition
            newPoint.X = newPoint.X - (a)
            newPoint.Y = newPoint.Y - (b)
            Me.Location = newPoint
        End If
    End Sub
Другие вопросы по тегам