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

نام تاپیک: بازشدن متوالی فرم

  1. #1

    Question بازشدن متوالی فرم

    سلام،
    یک سوال خیلی ساده...
    در برنامه وقتی در form1 میخواهم با یک button فرم دوم را show کنم، از دستور زیر استفاده میکنم:
    form form2=new form2
    form2.show

    این باعث میشه هر بار که بر روی button کلیک میکنم یک فرم جدید باز شه.
    خواستم بدونم چکار کنم که فقط یک بار فرم باز شه و با هر بار کلیک کردن همان فرم قبلی که یک بار show شد، فعال شود و فرم دیگری به برنامه اضافه نشود .

    با تشکر از ارسال پاسخ شما.

  2. #2
    کاربر دائمی آواتار pesar irooni
    تاریخ عضویت
    بهمن 1386
    محل زندگی
    تهران
    سن
    40
    پست
    495

    نقل قول: بازشدن متوالی فرم

    نباید داخل متد button click از new استفاده کنی و باید به جای متغیر محلی از متغیر سراسری برای form2 استفاده کنی.یعنی تعریف متغیر form2 داخل هیچ متدی نباشه و تو form1_load یا تو form1 constructor باید new کنی (یعنی فقط یه بار).
    داخل متد button click فقط form2.show رو فراخونی میکنی

  3. #3

    نقل قول: بازشدن متوالی فرم

    نقل قول نوشته شده توسط pesar irooni مشاهده تاپیک
    نباید داخل متد button click از new استفاده کنی و باید به جای متغیر محلی از متغیر سراسری برای form2 استفاده کنی.یعنی تعریف متغیر form2 داخل هیچ متدی نباشه و تو form1_load یا تو form1 constructor باید new کنی (یعنی فقط یه بار).
    داخل متد button click فقط form2.show رو فراخونی میکنی


    خوب با این کار فرم یک بار بیشترباز نمیشه اما اگر همین فرم را ببندی و بخواهی دوباره باز کنی با خطای can not access disposed object مواجه می شوم

  4. #4
    کاربر دائمی آواتار sinashahab
    تاریخ عضویت
    تیر 1387
    محل زندگی
    تهران و ترک کامپیوتر D:
    پست
    715

    نقل قول: بازشدن متوالی فرم

    نقل قول نوشته شده توسط nima.latifi مشاهده تاپیک
    خوب با این کار فرم یک بار بیشترباز نمیشه اما اگر همین فرم را ببندی و بخواهی دوباره باز کنی با خطای can not access disposed object مواجه می شوم
    خوب حتما شما موقع بستن فرم این کد رو می نویسید که از حافظه پاک بشه :
    this.dispose();

  5. #5

    Question نقل قول: بازشدن متوالی فرم

    نقل قول نوشته شده توسط sinashahab مشاهده تاپیک
    خوب حتما شما موقع بستن فرم این کد رو می نویسید که از حافظه پاک بشه :
    نه من فرم رو با دکمه (ضرب در ) می بندم و هیچ کدی برای بسته شدنش نمی نویسم. باز هم همون پیغام رو می ده

  6. #6

    نقل قول: بازشدن متوالی فرم

    سلام
    با زدن دکمه کلوز فرم کاملا بسته میشه و حذف هم میشه (dispose )
    باید کاری کنید که از بسته شدن فرم جلوگیری بشه و به جای بسته شدن مثلا مخفی بشه .
    مثلا در ایونت formclosing باید این رو بنویسید :

    private void Form1_FormClosing(object sender, FormClosingEventArgs e)
    {
    e.Cancel=true;
    this.Visible=false;
    }
    بهتره برای اینکه کارها به هم نریزه همون اول یه بار فرم رو لود کنی ولی مخفیش کنی و بعد با اون کلید فقط فرم رو ویزیبل کنی .

  7. #7
    VIP آواتار Sajjad.Aghapour
    تاریخ عضویت
    مهر 1386
    محل زندگی
    اهل کاشانم .. روزگارم بد نیست
    پست
    1,265

    نقل قول: بازشدن متوالی فرم

    در این مورد نیز قبلا بحث شده است.
    برای این کار میتوانید دوکار انجام بدید:
    1. فرم هایی که در Application باز هستند رو توسط Application.OpenForms چک کنید تا ببینید این فرم در این لیست وجود دارد یا نه
    2. فرم رو بصورت Singleton فراخوانی کنید.در این صورت فقط یک instance از فرم شما وجود خواهد داشت.

    اگر جستجو کنید نتایج جالبی خواهید دید
    موفق باشید/
    Close your eyes, take a deep breath, click your heels three times, and say, "There's no better thing than Inversion of Control and Dependency Injection, generic specialization, the decorator pattern, chains of responsibilities, and extensible software."

  8. #8

    Question نقل قول: بازشدن متوالی فرم

    خیلی متشکرم ، مشکل حل شد
    حالا یه سوال دیگه هم داشتم ، اگه فرم در حالت Minimize باشه چه جوری می تونم نمایش بدمش؟ وقتی فرم Minimize شده با اجرای کد frm.show دیگه نمایش داده نمی شه فقط اون فرم فعال می شه.

  9. #9
    کاربر دائمی
    تاریخ عضویت
    تیر 1389
    محل زندگی
    0x111530EF - 0x11657DA
    پست
    873

    نقل قول: بازشدن متوالی فرم

    نقل قول نوشته شده توسط AminErfani مشاهده تاپیک
    خیلی متشکرم ، مشکل حل شد
    حالا یه سوال دیگه هم داشتم ، اگه فرم در حالت Minimize باشه چه جوری می تونم نمایش بدمش؟ وقتی فرم Minimize شده با اجرای کد frm.show دیگه نمایش داده نمی شه فقط اون فرم فعال می شه.
    خوب نرمالش کن.

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

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