Form per Klick auf Bild bewegbar machen?

  • VB.NET

Es gibt 5 Antworten in diesem Thema. Der letzte Beitrag () ist von Gonger96.

    Form per Klick auf Bild bewegbar machen?

    Hey.

    Meine Form hat keinen Rand und lässt sich deshalb nicht bewegen. Ich habe auf meiner kompletten Form eine PictureBox, und irgendwie kann man das doch so machen, das wenn man die Maus auf der PictureBox gedrückt hält, das man die Form dann bewegen kann.

    Kann mir da jemand helfen?

    MfG.
    Das lässt sich mit der user32.dll machen:

    VB.NET-Quellcode

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


    mfG

    Derfuhr

    Geht Einfacher :D

    Geht auch einfacher:

    Private Sub Form1_MouseMove(ByVal sender As System.Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles MyBase.MouseMove

    If e.Button = Windows.Forms.MouseButtons.Left Then
    Me.Width = e.X
    Me.Height = e.Y
    End If
    End Sub
    Hi
    Die Deklaration von SendMessage wäre

    VB.NET-Quellcode

    1. <System.Runtime.InteropServices.DllImport("user32.dll")> _
    2. Private Shared Function SendMessage(ByVal hWnd As IntPtr, ByVal wMsg As Integer, ByVal wParam As IntPtr, ByVal lParam As IntPtr) As IntPtr
    3. End Function

    sonst dürft's auf 64-Bit PCs nicht tun.
    @Fabi 111: Das funktioniert wahrscheinlich nicht. Width und Height geben die Größe an, nicht die Position.

    Gruß
    ~blaze~

    C-Quellcode: 1

    1. WINUSERAPI
    2. LRESULT
    3. WINAPI
    4. SendMessageA(
    5. IN HWND hWnd,
    6. IN UINT Msg,
    7. IN WPARAM wParam,
    8. IN LPARAM lParam);

    Es gibt so ein schönes Plugin für VS von PInvoke.Net das hilft sehr wenn man sich nicht mit C++ auskennt.
    Klick

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