Form verschieben mit Label

  • VB.NET

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

    wat?
    ich habe genau keine Ahnung was du willst.
    Mfg: Gather
    Private Nachrichten bezüglich VB-Fragen werden Ignoriert!


    VB.NET-Quellcode

    1. Dim ptMouseDownPos As Point
    2. Private Sub Label1_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Label1.MouseDown
    3. If e.Button = Windows.Forms.MouseButtons.Left Then
    4. ptMouseDownPos = e.Location
    5. End If
    6. End Sub
    7. Private Sub Label1_MouseMove(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Label1.MouseMove
    8. If e.Button = Windows.Forms.MouseButtons.Left Then
    9. Dim ptNewPos As Point = e.Location - ptMouseDownPos + Me.Location
    10. Me.Location = ptNewPos
    11. End If
    12. End Sub

    ist ungetestet.
    Die Anmerkung "Funzt nicht" ist offen gesagt eine Frechheit! Beispiele, eine Form mit Hilfe eines Labels zu verschieben, gibt es hier im Forum.

    Das Label kann auf das Ereignis "MouseDown" reagieren. Hier kannst du die Startkoordinaten deiner Form abspeichern. Im "MouseMove"-Ereignis kannst du die neu berechneten Koordinaten der Form zuweisen. Der Rest ist logisches Denken.

    Versuche mal, etwas Initiative zu zeigen. Du hast die Suchfunktion, funktionierende(!!!) Beispielcodes, und vor allem einige Links auf dieser Seite, die du dir mal ansehen solltest (Ganz unten auf dieser Seite).
    Mach es mit der API-Function:

    VB.NET-Quellcode

    1. Declare Function ReleaseCapture Lib "user32" () As IntPtr
    2. Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As IntPtr, ByVal wMsg As IntPtr, ByVal wParam As IntPtr, ByRef lParam As Object) As IntPtr
    3. Const WM_NCLBUTTONDOWN = &HA1
    4. Const HTCAPTION = 2
    5. Private Sub Use_Label_to_move(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Label1.MouseDown
    6. ReleaseCapture()
    7. SendMessage(Handle, CType(WM_NCLBUTTONDOWN, IntPtr), CType(HTCAPTION, IntPtr), 2)
    8. End Sub


    mfG

    Derfuhr