FormBorderStyle None Bewegen (keine Rechnungen und kein Langer code)

    • VB.NET

    Es gibt 3 Antworten in diesem Thema. Der letzte Beitrag () ist von windowsfan.

      FormBorderStyle None Bewegen (keine Rechnungen und kein Langer code)

      Hallo,
      da ich selbst eine Zeitlang ewig nach einem Stück code gesucht habe, mit dem man seine Form (FormBorderStyle = None) bewegen kann,
      habe ich mir mal gedacht ich poste jetzt mal meine Variante:


      VB.NET-Quellcode

      1. Private Const WM_NCHITTEST As Integer = &H84
      2. Private Const HTCLIENT As Integer = &H1
      3. Private Const HTCAPTION As Integer = &H2
      4. Protected Overrides Sub WndProc(ByRef m As Message)
      5. MyBase.WndProc(m)
      6. Select Case m.Msg
      7. Case WM_NCHITTEST
      8. If m.Result = HTCLIENT Then m.Result = HTCAPTION
      9. End Select
      10. End Sub​



      Kenne diesen Code von einem Youtube-Video, er war allerdings noch viel zu lang und kompliziert, ich habe ihn lediglich vereinfacht und verkürzt.
      Wenn ihr mehr mit dieser Methode rumprobieren wollt, werdet ihr sicher diese Seite brauchen: KLICK

      TIPP:
      Wenn ihr die Form auch mit PictureBoxen bewegen wollt, so setzt diese einfach auf Enabled = False
      Meine Software findet ihr HIER, bin in Android und Windows entwicklung aktiv.

      Falls ihr meine begehrte Movie Box für Android haben wollt, diese findet ihr auch auf meiner Website oder hier direkt download.
      Der ist auch nett:

      VB.NET-Quellcode

      1. Protected Overrides Sub OnMouseDown(e As MouseEventArgs)
      2. MyBase.OnMouseDown(e)
      3. If e.Button = MouseButtons.Left Then
      4. Me.Capture = False
      5. Dim msg As Message = Message.Create(Me.Handle, &HA1, New IntPtr(2), IntPtr.Zero)
      6. Me.WndProc(msg)
      7. End If
      8. End Sub

      VB.NET-Quellcode

      1. Private 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
      Edit by ErfinderDesRades: Code-Tags eingefügt

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „ErfinderDesRades“ ()