PDA

View Full Version : حرکت دادن فرم برنامه ای که بردر ندارد



tanha70
دوشنبه 10 شهریور 1393, 17:14 عصر
سلام
من برای برنامم بک گراندی درست کردم و میخوام که کاربر با با drag کردن هر قسمت از برنامه بتونه فرم برنامه رو جابجا کنه.
یعنی دیگخ نمیخوام که فرمم boarder داشته باشه.
ممنون میشم راهنمایی بفرمایید.

NASA's Spaceman
دوشنبه 10 شهریور 1393, 18:13 عصر
اول این Using رو تعریف کن
using System.Runtime.InteropServices;
بعد توی کلاس فرمت اینا رو بنویس
public const int MW_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();
و بعد توی رویداد Mouse Down فرمت ازش استفاده کن
private void Form1_MouseDown(object sender, MouseEventArgs e) {
if (e.Button == MouseButtons.Left)
{
ReleaseCapture();
SendMessage(Handle, MW_NCLBUTTONDOWN, HT_CAPTION, 2);
}
}
این الان هر جای فرمت کلیک چپ بگیری میتونی حرکتش بدی و اگه میخوای روی اشیاه دیگه فرمت اینکار رو انجام بدی باید اون ها و هم توی رویداد Mouse Down مثل چیزی که برا فرم نوشتی رو بنویسی
با سپاس Spaceman