برعکس حالت Minimized در سی شارپ بدون تمام صفحه شدن

در آموزش «بررسی باز بودن و نبودن یک فرم»، به روشی پرداخته شد که اگر نمونه‌ای از یک فرم قبلا وجود داشت، آن را به کاربر نمایش دهد و نمونه‌ای جدیدی از آن را نسازد! اما مشکلی که وجود داشت، این بود که اگر فرم Minimized  (مینیمایز) شده بود و ما از روش زیر برای بالاآوردن آن استفاده می‌کردیم، با مشکل تمام صفحه (Maximized) شدن فرم رو به رو می‌شدیم!

if (find.WindowState == FormWindowState.Minimized)
{
    find.WindowState = FormWindowState.Maximized;
}

روش حل مشکل

کد زیر را به کلاس فرم خود اضافه کنید:

[DllImport("user32.dll")]
private static extern int ShowWindow(IntPtr hWnd, uint Msg);

private const uint SW_RESTORE = 0x09;

حالا به جای آنکه FormWindowState را برابر Maximized قرار دهیم، از کد زیر استفاده می‌کنیم:

ShowWindow(form.Handle, SW_RESTORE);

به همین سادگی 🙂

پاسخ دهید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

cp-codfk

نظرات ثبت شده بدون دیدگاه

توضیحات پیشنهادی نظرات اشتراک