Bei "Control: None" Verschiebungsmöglichkeit des Fensters erstellen?

  • VB.NET

Es gibt 7 Antworten in diesem Thema. Der letzte Beitrag () ist von sandiro.

    Bei "Control: None" Verschiebungsmöglichkeit des Fensters erstellen?

    Hi,
    ich komme direkt zu meiner Frage:
    Wenn man bei einer Form Control auf None stellt, ist es ja nicht mehr möglich das Fenster zu verschieben.
    Kann man es nicht irgendwie einstellen das die Form verschiebbar ist wenn man in einen bestimmten Bereich klickt und wie gewohnt zieht?
    Oder wenn man das ohne Begrenzung macht.
    MfG
    Big-Blue
    ALs Beispiel wie man mit einem Label die Form bewegt:

    VB.NET-Quellcode

    1. Dim nStartPos2 As Point
    2. Dim nDragPos2 As Point
    3. Private Sub Label1_MouseDown(ByVal sender As Object, ByVal e As MouseEventArgs) Handles Label1.MouseDown
    4. ' Position des Fensters und der Maus merken
    5. If MouseButtons = MouseButtons.Left Then
    6. nStartPos2 = Me.Location
    7. nDragPos2 = Me.PointToScreen(New Point(e.X, e.Y))
    8. End If
    9. End Sub
    10. Private Sub Label1_MouseMove(ByVal sender As Object, ByVal e As MouseEventArgs) Handles Label1.MouseMove
    11. If MouseButtons = MouseButtons.Left Then
    12. ' aktuelle Mausposition bezogen auf den Desktop
    13. Dim nCurPos As Point = Me.PointToScreen(New Point(e.X, e.Y))
    14. ' Fenster an neuen Position verschieben
    15. Me.Location = New Point(nStartPos2.X + nCurPos.X - nDragPos2.X, _
    16. nStartPos2.Y + nCurPos.Y - nDragPos2.Y)
    17. End If
    18. End Sub

    Skybird schrieb:

    Das sind ja Ubisoftmethoden hier !

    Hello, Big-Blue!

    Einstellen muss man eigentlich sonst nichts mehr. Der Code von VB-Checker funktioniert perfekt. Du kannst die Form hier allerdings nur bewegen, wenn du das Label benutzt. Um das Fenster durch Ziehen auf der Form selbst zu bewegen, müsstest du den Code etwas abändern.

    LG, der_Kurt
    Oh mein Gott...
    Ja, sorry, letzter Beitrag war überflüssig.
    Erst nachdenken, dann überlegen.
    Mein Verschieb-Label war Label3, was ich natürlich im Code nicht geändert habe -.-
    Danke für eure Geduld und den Code =D
    MfG
    Hier mit einer Picturebox, kann aber auch mit irgendwas anderes sein:

    VB.NET-Quellcode

    1. Public bild_posi As Windows.Forms.Control



    VB.NET-Quellcode

    1. Private Sub PictureBox1_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles PictureBox1.MouseDown
    2. If e.Button = Windows.Forms.MouseButtons.Left Then
    3. bild_posi = New Windows.Forms.Control
    4. bild_posi.Location = e.Location
    5. End If
    6. End Sub
    7. Private Sub PictureBox1_MouseMove(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles PictureBox1.MouseMove
    8. If e.Button = Windows.Forms.MouseButtons.Left Then
    9. Dim position As Windows.Forms.Control
    10. position = New Windows.Forms.Control
    11. position.Location = (e.Location + Me.Location) - bild_posi.Location
    12. Me.Location = position.Location
    13. End If
    14. End Sub



    Edit: Habe den Beitrag um die gleiche Zeit geschrieben :)