Najpierw będziemy musieli korzystać z usług międzyoperacyjne używając nazw jako
using System.Runtime.InteropServices;
Następną rzeczą byłoby zdefiniowanie wiadomości, które zadba o przeniesienie formularza. Będziemy musieli je jako zmienne składowe klasy
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();
i wreszcie będziemy pisać kod, aby wysłać wiadomość, gdy użytkownik naciśnie przycisk myszy. Formularz zostanie przestawiony zgodnie z ruchem myszy, jeśli użytkownik przytrzyma naciśnięty przycisk myszy.
private void Form1_MouseDown(object sender, MouseEventArgs e)
{
ReleaseCapture();
SendMessage(this.Handle, WM_NCLBUTTONDOWN, HT_CAPTION, 0);
}
sprawdź ten link Dragable form
kredytów rahul-rajat-singh
Działa dla mnie z FormBorderStyle ustawionym na Brak. To jest na serwerze 2008, VS2008 z .NET 3.5. Co to jest .NET wersja i system operacyjny? –
@ Michael McCloskey - Używam Windows 7 rc, vs2008 z .net 3.5. – Moon
@Michael McClosKey - nevermind! Teraz działa. Nie wiem co się stało. – Moon