У меня есть этот код для перемещения с моими формами.
Public BeingDragged As Boolean = False
Public MouseDownX As Integer
Public MouseDownY As Integer
Private Sub Mouse_Down(sender As Object, e As MouseEventArgs)
If e.Button = MouseButtons.Left Then
BeingDragged = True
MouseDownX = e.X
MouseDownY = e.Y
End If
End Sub
Private Sub TopPanel_MouseUp(sender As Object, e As MouseEventArgs)
If e.Button = MouseButtons.Left Then
BeingDragged = False
End If
End Sub
Private Sub TopPanel_MouseMove(sender As Object, e As MouseEventArgs)
If BeingDragged = True Then
Dim tmp As Point = New Point()
tmp.X = Form.Location.X + (e.X - MouseDownX)
tmp.Y = Form.Location.Y + (e.Y - MouseDownY)
Form.Location = tmp
tmp = Nothing
End If
End Sub
Но как я могу использовать это для перемещения с программно созданной формой. Я пробовал AddHandler Top_Panel.MouseDown с лямбдой, а также с адресом, но ничего не работает. Потому что адрес должен быть без круглых скобок, и я не знаю, как я могу определить e как MouseEventArgs без него. Заранее спасибо.
Form
и подписаться на события. Также было бы разумно поместить этот код в класс, производный от Form. Теперь он может быть базовым классом для любой создаваемой вами формы, которая должна быть перемещаемой таким образом, и вам не нужно писать дополнительный код для его использования. - person Hans Passant   schedule 28.07.2018