جابجایی فرم با کلیک ماوس توسط توابع API در سی شارپ
یکی از قابلیت های ساده اما بسیار کاربردی که راحتی کار با برنامه شما را برای کاربر بیشتر می کند ، انتفال فرم با ماوس با کلیک کردن روی هر نقطه ای از آن است .
با استفاده از کد زیر که از توابع API در آن استفاده شده است ، می توانید به آسانی این کار را انجام دهید .
ابتدا فضای نام زیر را در برنامه وارد کنید
using System.Runtime.InteropServices;
سپس از کد زیر در رویداد MouseDown فرم استفاده کنید :
[DllImport("user32.dll")] static extern int ReleaseCapture(); [DllImport("user32.dll", EntryPoint = "SendMessageA")] static extern int SendMessage(int hwnd, int wMsg, int wParam, object lParam); private const int WM_NCLBUTTONDOWN = 161; private void Form1_MouseDown(object sender, MouseEventArgs e) { ReleaseCapture(); SendMessage(this.Handle.ToInt32(), WM_NCLBUTTONDOWN, 2, 0); }
منبع : سایت برنامه نویس
سلام. تشکر بابت این مطلب.
بنده کد رو که تست کردم تا وقتیکه دکمه ماوس پایین هست و نگه داشته شده کار میکنه .
همینکه ماوس رو رها میکنیم، خطا میده. فکر کنم یه رویداد Form1_MouseUp نیز نیاز هست.
چطوری میشه اصلاحش کرد؟
بسیار عالی .. ولی کاش یه مطلب کامل از توابع API بزاری اخه توی برنامه نویسی خیلی کمک میکنن مثلا تابع اجرای ماشین حساب و غیره