Zuerst werden wir die Interop-Dienste mithilfe des Namespace als
using System.Runtime.InteropServices;
Das nächste, was wäre, um die Nachrichten zu definieren, nehmen Pflege der Bewegung der Form verwenden. Wir werden diese als Klassenelementvariablen
public const int WM_NCLBUTTONDOWN = 0xA1;
public const int HT_CAPTION = 0x2;
[DllImportAttribute("user32.dll")]
public static extern int SendMessage(IntPtr hWnd, int Msg, int wParam, int lParam);
[DllImportAttribute("user32.dll")]
public static extern bool ReleaseCapture();
und schließlich werden wir den Code schreiben die Nachricht zu senden, wenn der Benutzer die Maustaste drückt. Das Formular wird gemäß der Mausbewegung neu positioniert, wenn der Benutzer die Maustaste gedrückt hält.
private void Form1_MouseDown(object sender, MouseEventArgs e)
{
ReleaseCapture();
SendMessage(this.Handle, WM_NCLBUTTONDOWN, HT_CAPTION, 0);
}
Siehe Link Dragable form
Credits rahul-rajat-singh
Es funktioniert für mich mit FormBorderStyle auf None gesetzt. Dies ist auf Server 2008, VS2008 mit .NET 3.5. In welcher .NET-Version und auf welchem Betriebssystem befinden Sie sich? –
@Michael McCloskey - Ich benutze Windows 7 RC, vs2008 mit. NET 3.5. – Moon
@Michael McClosKey - vergiss es! es funktioniert jetzt. Ich weiß nicht was passiert ist. – Moon