نمایش نتایج 1 تا 6 از 6

نام تاپیک: میخواهم فقط یک نمونه از کلاس در حال اجرا باشد .....

  1. #1
    محروم شده آواتار Babak-Aghili
    تاریخ عضویت
    اسفند 1383
    محل زندگی
    در خاطرات شما
    پست
    801

    میخواهم فقط یک نمونه از کلاس در حال اجرا باشد .....

    با سلام. ( ببخشید دیگه ! تازه کاریم !! )
    --------
    وقتی میگم که
     Form2 f2= new Form2();
    f2.Show ()


    خب فرم 2 را نمایش میدهد .... اگر دوباره روی دکمه ای که این کد را در آن نوشته ام کلیک کنم باز هم یک فرم جدید دیگر درست میکند و نمایش میدهد و. .....

    میخواستم بدانم که آیا یک راه درست حسابی ( مثلا چک کردن وجود یک Instance از آن فرم ) برای جل.گیری از این مشکل وجود دارد و یا اینکه باید یک متغیر Boolean بگیرم و .....

    :flower:

  2. #2
    باید فرم رو به صورت Modal نشان بدی یعنی به جای

    Form.Show()


    از

    Form.ShowDialog()


    استفاده کنی.

  3. #3
    کاربر دائمی
    تاریخ عضویت
    آبان 1383
    محل زندگی
    تهران
    پست
    133

    public Form F;


    و برای فراخوانی:

    using (f=new Form())
    {
    f.ShowDialog();
    //do any thing u want
    }

    این کد باعث میشه پس از تکمیل اجرای بلاک using فرم f از حافظه خارج بشه!

  4. #4
    کاربر دائمی آواتار M.GhanaatPisheh
    تاریخ عضویت
    اردیبهشت 1383
    محل زندگی
    ----------
    پست
    1,267
    از Singleton Pattern استفاده کنید
    اساس این الگو حل همین مشکل هست.
    توی همین بخش Singleton رو Search کنید.

  5. #5
    کاربر دائمی آواتار M.GhanaatPisheh
    تاریخ عضویت
    اردیبهشت 1383
    محل زندگی
    ----------
    پست
    1,267
    http://www.barnamenevis.org/vi...ight=singleton
    نمی خواد Search کنید.
    :wink:

  6. #6
    محروم شده آواتار Babak-Aghili
    تاریخ عضویت
    اسفند 1383
    محل زندگی
    در خاطرات شما
    پست
    801
    دست همگی دوستان درد نکنه ( البته اساتید ! )

    ممنون ... فکر نمیکردم همه سی شارپ کارهای معروف این بخش به سوالم جواب بدهند ...

    تشکر ... :flower:

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •