تبلیغات

بررسی باز بودن و نبودن یک فرم در سی شارپ

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

روش انجام کار

به روش زیر عمل می‌کنیم: (به جای FormFuLLKade، نام فرم مورد نظر را می‌‌نویسیم)

در اینجا، از کلاس Application، ویژگی OpenForms را می‌گیرم که از نوع FormCollection و البته به صورت static بوده و شامل مجموعه‌ای از فرم‌ها می‌باشد؛ سپس با متد OfType و Any که از متدهای Enumerable هستند، برای فهمیدن اینکه آیا هیچ نمونه‌ای از فرم مشخص شده وجود دارد یا خیر، استفاده می‌کنیم.

مثال

اگر هیچ نمونه‌ای از فرم FormFuLLKade وجود نداشت، یک نمونه از آن ایجاد کرده و آن را نمایش بده:

دریافت فرم نمونه

حالا فرض کنید بخواهیم اگر نمونه‌ای از فرم وجود داشت، آن را دریافت کنیم! برای انجام این کار بایستی از همان ویژگی OpenForms و با نوشته یک حلقه استفاده کنیم:

همانطور که می‌بینید، به ازای هر فرم داخل مجموعه‌ی فرم‌ها، با کلیدواژه‌ی is، بررسی کرده‌ایم که اگر از نوع فرم دلخواه ما بود، آن را به متغیر find اعمال کرده و حلقه را بشکند. سپس در ادامه بررسی کرده‌ایم که اگر find برابر null بود، یعنی وجود ندارد و یکی بسازد و اگر null نبود، روی همان که وجود دارد فوکوس کند تا به بالاترین سطح آمده (روی تمامی فرم‌ها) و نمایش داده شود.

البته اگر MInimize شده باشد، بایستی ابتدا Maximize شود؛ به صورت زیر:

اما مشکل این روش این است که موقع ماکسیمایز شدن، اندازه FullScreen خواهد شد! برای حل آن، از روش گفته شده در «این‌لینک» استفاده کنید.


همانطور که دیدید، در اینجا از روش قبلی برای بررسی وجود داشتن فرم استفاده نکردیم! چرا که می‌توان به صورت بالا اینکار را انجام داد.
تبلیغات
2 نظر
کانال تلگرام فول کده
تبلیغات

درباره نویسنده

هادی اکبرزاده

[ مدیر فول کده ]

علاقه‌مند به اشتراک گذاری اطلاعات در هر زمینه‌ای / برنامه‌نویس / مدیر فول کده

پاسخ دهید

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

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

    1. ساسان گفت:

      سلام چجور میشه کاری کرد ک فرما مثل پنجره های ویندوز باز و بسته شن
      مثلا اگه بسته بود اونو باز کنه
      اگه باز یود اوانو نشون بده یا اگه مینی مایز یا غیر فعال شده اونو اکتیو کنه و نشون بده

      1. سلام
        از خاصیت WindowState تو فرم هامی تونید استفاده کنید