Đầu tiên chúng ta sẽ phải sử dụng các dịch vụ interop bằng cách sử dụng không gian tên như
using System.Runtime.InteropServices;
Điều tiếp theo sẽ được xác định thông điệp rằng sẽ chăm sóc di chuyển form. Chúng tôi sẽ có các biến thành viên lớp học
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();
và cuối cùng chúng tôi sẽ viết mã để gửi thư bất cứ khi nào người dùng nhấn nút chuột. Biểu mẫu sẽ được định vị lại theo chuyển động của chuột nếu người dùng giữ nút chuột được nhấn.
private void Form1_MouseDown(object sender, MouseEventArgs e)
{
ReleaseCapture();
SendMessage(this.Handle, WM_NCLBUTTONDOWN, HT_CAPTION, 0);
}
Tham khảo link này Dragable form
Tín dụng cho rahul-rajat-singh
Nó làm việc cho tôi với FormBorderStyle được đặt thành Không. Đây là trên Server 2008, VS2008 với .NET 3.5. Bạn đang sử dụng phiên bản .NET và hệ điều hành nào? –
@Michael McCloskey - Tôi đang sử dụng windows 7 rc, vs2008 với .net 3.5. – Moon
@Michael McClosKey - nevermind! nó hoạt dộng bây giờ. Tôi không biết chuyện gì đã xảy ra. – Moon