در آموزش «بررسی باز بودن و نبودن یک فرم»، به روشی پرداخته شد که اگر نمونهای از یک فرم قبلا وجود داشت، آن را به کاربر نمایش دهد و نمونهای جدیدی از آن را نسازد! اما مشکلی که وجود داشت، این بود که اگر فرم Minimized (مینیمایز) شده بود و ما از روش زیر برای بالاآوردن آن استفاده میکردیم، با مشکل تمام صفحه (Maximized) شدن فرم رو به رو میشدیم!
1 2 3 4 |
if (find.WindowState == FormWindowState.Minimized) { find.WindowState = FormWindowState.Maximized; } |
روش حل مشکل
کد زیر را به کلاس فرم خود اضافه کنید:
1 2 3 4 |
[DllImport("user32.dll")] private static extern int ShowWindow(IntPtr hWnd, uint Msg); private const uint SW_RESTORE = 0x09; |
حالا به جای آنکه FormWindowState را برابر Maximized قرار دهیم، از کد زیر استفاده میکنیم:
1 |
ShowWindow(form.Handle, SW_RESTORE); |
به همین سادگی 🙂
نظرات ثبت شده بدون دیدگاه