نحوه Minimize کردن فرم های بدون Border در Taskbar سی شارپ

به صورت پیش فرض فرم های بدون حاشیه برای Minimize شدن طراحی نشده اند، این بدان معنی است زمانی که خصوصیت FormBorderStyle بر روی None قرار داده باشید پی خواهید برد که وقتی که روی نام نرم افزار روی Taskbar کلیک کنید همانند معمول نرم افزار کوچک نمی شود.

این مشکل با Override کردن CreateParams و اضافه کردن استایل WS_MINIMIZEBOX به پنجره و CS_DBLCLKS به کلاس استایل پنجره قابل حل است.

کد نمونه زیر را به سادگی به کلاس فرم مربوطه اضافه کنید تا عملکرد Minimize دوباره فعال شود.

const int WS_MINIMIZEBOX = 0x20000;
const int CS_DBLCLKS = 0x8;

protected override CreateParams CreateParams
{
    get
    {
        CreateParams cp = base.CreateParams;
        cp.Style |= WS_MINIMIZEBOX;
        cp.ClassStyle |= CS_DBLCLKS;
        return cp;
    }
}

http://www.fluxbytes.com/csharp/minimize-a-form-without-border-using-the-taskbar

این مطلب برای اولین بار در تاریخ 04 اسفند 1394 در وبلاگ پیمان محمدی منتشر شده است.
نظرات (0)