Controls über Form bewegen (mit Docking)

    • VB.NET

    Es gibt 1 Antwort in diesem Thema. Der letzte Beitrag () ist von ~blaze~.

      Controls über Form bewegen (mit Docking)

      Hi
      Das geht so:

      VB.NET-Quellcode

      1. 'Entfernen, wenn kein eingeschränkter Bereich existieren soll
      2. Dim DockLeft As Integer = 0
      3. Dim DockRight As Integer = 0
      4. Dim DockTop As Integer = 0
      5. Dim DockBottom As Integer = 0
      6. Dim TitleBarSize As Size
      7. Private Sub Form_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
      8. TitleBarSize = Me.Size - Me.ClientSize
      9. End Sub
      10. 'bis hier
      11. Dim Pos As Point
      12. Private Sub Control_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles TextBox1.MouseDown
      13. Pos = e.Location
      14. Dim C As Control = DirectCast(sender, Control)
      15. End Sub
      16. Private Sub Control_MouseMove(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles TextBox1.MouseMove
      17. If e.Button = Windows.Forms.MouseButtons.Left Then
      18. Dim C As Control = DirectCast(sender, Control)
      19. Dim Loc As Point = e.Location - Pos + C.Location
      20. 'Entfernen, wenn kein eingeschränkter Bereich existieren soll
      21. 'bei Docking einfach Dock anpassen (Vorschlag: 7; 7; 7; 7)
      22. If Loc.X < DockLeft Then
      23. Loc.X = 0
      24. End If
      25. If Loc.Y < DockTop Then
      26. Loc.Y = 0
      27. End If
      28. If Loc.X > C.Parent.Width - C.Size.Width - DockRight - 16 Then
      29. Loc.X = C.Parent.Width - C.Size.Width - 16
      30. End If
      31. If Loc.Y > C.Parent.Height - C.Size.Height - DockBottom - TitleBarSize.Height Then
      32. Loc.Y = C.Parent.Height - C.Size.Height - TitleBarSize.Height
      33. End If
      34. 'bis hier
      35. C.Location = Loc
      36. End If
      37. End Sub


      Gruß
      ~blaze~

      Dieser Beitrag wurde bereits 4 mal editiert, zuletzt von „~blaze~“ ()