|
تا حالا نیاز به جابجا کردن فرم با موس را داشتیه اید.
مثلا یک عکس روی فرم خود گذاسشته اید و می خواهید زمانی که کاربر موس را روی ان نگه میدارد همراه با حرکت موس فرم نیز حرکت کند. مثلا در نرم افزار های ما مثل registry cleaner زمانی که موس را بر روی فرم نگه میدارید کل فرم جابجا میشود.
این کار ساده است . ابتدا باید روی شیئ مورد نظر کلیک کرده و در خاصیت MouseDown کلیک کنید و این توابع را بنویسید
private void Form1_MouseDown(object sender, MouseEventArgs e) { if (e.Button == MouseButtons.Left) { ReleaseCapture(); int lParam = 0; SendMessage(this.Handle.ToInt32(), 0xa1, 2, ref lParam); }
}
با این کار فرم به راحتی جابجا میشود. حالا کافی است که این توابع را بنویسید . این توابع تابع های سیتمی را فراخوانی میکنند که نتیجه ان جابجا شدن فرم است
[DllImport("user32", CharSet = CharSet.Ansi, SetLastError = true, ExactSpelling = true)] private static extern int ReleaseCapture(); [DllImport("user32", EntryPoint = "SendMessageA", CharSet = CharSet.Ansi, SetLastError = true, ExactSpelling = true)] private static extern int SendMessage(int hwnd, int wMsg, int wParam, ref int lParam); [DllImport("user32", CharSet = CharSet.Ansi, SetLastError = true, ExactSpelling = true)] private static extern int SetWindowRgn(int hWnd, int hRgn, bool bRedraw);
البته این کار را برای هر کامپوننت ای می توانید انجام دهید . محدودیتی ندارید
تعداد بازدید : 79 |
نوشتده شده توسط admin در تاریخ 1388/05/15 در ساعت 15:3
|