FormBorderStyle = None / Bewegen!

  • VB.NET

Es gibt 9 Antworten in diesem Thema. Der letzte Beitrag () ist von der_Kurt.

    FormBorderStyle = None / Bewegen!

    Ich habe meine Form auf FormBorderStyle = None gestellt.
    Nun möchte ich die Form trotzdem bewegen....
    Wie geht das?
    PS: Habe schon bei Google geguckt, aber wenn ich da nen Code einfüge, wird alles als falsch gemeldet....
    Vielen Dank :)
    Habe eben etwas geschrieben:

    VB.NET-Quellcode

    1. Public Class Form1 Inherits Form
    2. Private IsPressed As Boolean
    3. Private NewLocation As Point
    4. Private MouseLocation As Point
    5. Public Sub OnLoad(ByVal Sender As Object, ByVal Ev As EventArgs) Handles MyBase.Load
    6. IsPressed = False
    7. End Sub
    8. Public Sub OnMouseDown(ByVal Sender As Object, ByVal Ev As MouseEventArgs) Handles MyBase.MouseDown
    9. If Ev.Button = MouseButtons.Left Then
    10. IsPressed = True
    11. NewLocation = Location
    12. MouseLocation = Ev.Location
    13. End If
    14. End Sub
    15. Public Sub OnMouseMove(ByVal Sender As Object, ByVal Ev As MouseEventArgs) Handles MyBase.MouseMove
    16. If IsPressed Then
    17. NewLocation = New Point(Cursor.Position.X - MouseLocation.X, Cursor.Position.Y - MouseLocation.Y)
    18. End If
    19. End Sub
    20. Public Sub OnMouseUp(ByVal Sender As Object, ByVal Ev As MouseEventArgs) Handles MyBase.MouseUp
    21. If IsPressed Then
    22. IsPressed = False
    23. Location = NewLocation
    24. End If
    25. End Sub
    26. End Class
    VS hat die sogenannten Code-Snippets an Board. Hier wird mit einem Rechtsklick im Codefenster beim Befehl "Ausschnitt einfügen" unter anderem genau dieser Befehl angeboten, mit fünf Mausklicks:
    Spoiler anzeigen

    VB.NET-Quellcode

    1. Dim mouseOffset As Point
    2. Private Sub Me_MouseDown(ByVal sender As Object, ByVal e As MouseEventArgs) Handles MyBase.MouseDown
    3. mouseOffset = New Point(-e.X, -e.Y)
    4. End Sub
    5. Private Sub Me_MouseMove(ByVal sender As Object, ByVal e As MouseEventArgs) Handles MyBase.MouseMove
    6. If e.Button = MouseButtons.Left Then
    7. Dim mousePos = Control.MousePosition
    8. mousePos.Offset(mouseOffset.X, mouseOffset.Y)
    9. Location = mousePos
    10. End If
    11. End Sub
    Probier mal den da, der ist schon fertig

    VB.NET-Quellcode

    1. Private Sub Form1_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Me.MouseDown
    2. If e.Button = Windows.Forms.MouseButtons.Left Then
    3. MausLocation = e.Location
    4. End If
    5. End Sub
    6. Private Sub Form1_MouseMove(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Me.MouseMove
    7. If e.Button = Windows.Forms.MouseButtons.Left Then
    8. Me.Location = e.Location - MausLocation + Me.Location
    9. End If
    10. End Sub