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

نام تاپیک: چگونگی مخفی شدن و نمایان شدن مجدد فرم

  1. #1
    کاربر دائمی
    تاریخ عضویت
    آذر 1386
    محل زندگی
    شیراز
    پست
    133

    Tick چگونگی مخفی شدن و نمایان شدن مجدد فرم

    با سلام:
    من دو تا فرم دارم, چگونه می شه وقتی که برای مثال دکمه ای رو در Form1 کلیک می کنم و با این کلیلک Form2 باز می شه , بعد از باز شدن From2 بلافاصله Form1 بسته شود و وقتی Form2 بسته شد بلافاصله Form1 مجددا نمایش داده شود
    با تشکر

  2. #2
    نقل قول نوشته شده توسط iranigirl1364 مشاهده تاپیک
    با سلام:
    من دو تا فرم دارم, چگونه می شه وقتی که برای مثال دکمه ای رو در Form1 کلیک می کنم و با این کلیلک Form2 باز می شه , بعد از باز شدن From2 بلافاصله Form1 بسته شود و وقتی Form2 بسته شد بلافاصله Form1 مجددا نمایش داده شود
    با تشکر
    کد فرم 1 :
    private void button1_Click(object sender, EventArgs e)
    {
    Form2 frm = new Form2();
    frm.Show();
    frm.Tag = this;
    this.Hide();
    }
    کد فرم 2 :

    private void button1_Click(object sender, EventArgs e)
    {
    ((Form)this.Tag).Show();
    this.Close();
    }
    فایل های ضمیمه فایل های ضمیمه
    ...مرا به خانه ام ببر، اگرچه خانه؛ خانه نیست

  3. #3
    میتونی از رویداد hide استفاده کنی
    این نمونه مثال به سوال شما جواب میده
    فایل های ضمیمه فایل های ضمیمه

  4. #4
    اینجوری که راحت تره:

    private void button1_Click(object sender, EventArgs e)
    {
    Form2 frm = new Form2();
    this.Hide();
    frm.ShowDialog();
    This.show();

    }

  5. #5
    نقل قول نوشته شده توسط mr_moghimkhani مشاهده تاپیک
    اینجوری که راحت تره:

    private void button1_Click(object sender, EventArgs e)
    {
    Form2 frm = new Form2();
    this.Hide();
    frm.ShowDialog();
    This.show();

    }
    حق با شماست، با محدود کردن شرایط و مفروضات مساله میشه راه حل ساده تری ارائه داد. اما آیا استفاده از ShowDialog همواره راه حل خوبی است؟
    ...مرا به خانه ام ببر، اگرچه خانه؛ خانه نیست

  6. #6
    نقل قول نوشته شده توسط sinpin مشاهده تاپیک
    حق با شماست، با محدود کردن شرایط و مفروضات مساله میشه راه حل ساده تری ارائه داد.
    بله، حق با شماست ولی در صورت مسئله چیزی در مورد چگونگی باز شدن فرم دوم بیان نشده است.
    نقل قول نوشته شده توسط sinpin مشاهده تاپیک
    اما آیا استفاده از ShowDialog همواره راه حل خوبی است؟
    از نحوه سئوال شما اینگونه بر می آید که استفاده از ShowDialog دارای معایبی است، اگر چنین است، بیان کنید تا من هم متوجه بشوم، ولی من تا به حال چیزی از معایب آن نشنیده ام. و همیشه بنا به مصلحت و تفاوت آن با Show ازش استفاده می کرده ام و این هم روشی است که فکر کنم برای شروع کار خوب باشد. اگر مطالب بیشتری می دانید خوشحال مشم که به من هم بگید دوست عزیز.

  7. #7
    نقل قول نوشته شده توسط mr_moghimkhani مشاهده تاپیک
    از نحوه سئوال شما اینگونه بر می آید که استفاده از ShowDialog دارای معایبی است، اگر چنین است، بیان کنید تا من هم متوجه بشوم، ولی من تا به حال چیزی از معایب آن نشنیده ام. و همیشه بنا به مصلحت و تفاوت آن با Show ازش استفاده می کرده ام و این هم روشی است که فکر کنم برای شروع کار خوب باشد. اگر مطالب بیشتری می دانید خوشحال مشم که به من هم بگید دوست عزیز.

    خیر من چنین چیزی نگفتم، فقط پرسیدم آیا همیشه استفاده از اون مفیده؟
    نقل قول نوشته شده توسط sinpin مشاهده تاپیک
    حق با شماست، با محدود کردن شرایط و مفروضات مساله میشه راه حل ساده تری ارائه داد. اما آیا استفاده از ShowDialog همواره راه حل خوبی است؟
    فرض کنید فرمی که در این مثال hide شده (فرم 1) به دلایلی لازم باشه لحظه ای show بشه و همانطور که فرم 2 باز است کاربر بخواهد اطلاعاتی را در آن وارد کند. در آنصورت اگر ما فرم2 رو بصورت مودال باز کرده باشیم ؛ مادامیکه فرم جدید را نبندیم این امکان را نخواهیم داشت که با فرم قبلی کار کنیم.
    بصورت خلاصه :‌ راه حل شما کاملا صحیح است اما برای حالت خاص (یعنی ممکنه همیشه کار با یک فرم به این سادگی نباشه...)


    Forms and dialog boxes are either modal or modeless. A modal form or dialog box must be closed or hidden before you can continue working with the rest of the application. For more information about working with dialog boxes, see User Input to Dialog Boxes.
    Dialog boxes that display important messages should always be modal. The About dialog box in Visual Studio is an example of a modal dialog box. MessageBox is a modal form you can use.
    Modeless forms let you shift the focus between the form and another form without having to close the initial form. The user can continue to work elsewhere in any application while the form is displayed.

    Modeless forms are harder to program, because users can access them in an unpredictable order. You have to keep the state of the application consistent no matter what the user does. Often, tool windows are shown in a modeless fashion. The Find dialog box, accessible from the Edit menu in Visual Studio, is an example of a modeless dialog box. Use modeless forms to display frequently used commands or information
    .
    منبع : http://msdn2.microsoft.com/en-us/library/39wcs2dh(VS.80).aspx

    با توجه به متن بالا :‌ فرضا در یک ویرایشگر متن، فرم Find حتما باید بصورت Modeless‌ باز شود (چون کاربر میخواهد با فرم قبلی نیز تراکنش داشته باشد)
    ...مرا به خانه ام ببر، اگرچه خانه؛ خانه نیست

  8. #8
    خوب که نگاه میکنم ، میبینم ما هر دو یک چیز را بیان میکنیم. اگر صورت مسئله به آن چیزی که در پست اخیر بیان نمودید تغییر کند، من هم از روشهایی شبیه آنچه بیان نمودید استفاده میکنم. ولی اگر بازگردیم به سوال اصلی مطروحه در این تاپیک تمامی راه حل ها مشکل فوق را برطرف خواهند کرد. مگر اینکه سوال طور دیگری مطرح شود.
    با تشکر از شما دوست گرامی

  9. #9
    کاربر دائمی
    تاریخ عضویت
    آذر 1386
    محل زندگی
    شیراز
    پست
    133
    با سلام مجدد:
    قبل از هر چیز لازمه از توجه و راهنمایی همه شما تشکر کنم.و از بحثهایی که مطرح شده بود خیلی استفاده کردم.
    اگر براتون امکان داره به این فایل ضمیمه که گذاشتم لطفا یک نگاهی بیندازید و بازم منو راهنمایی کنید.
    من مجبورم از ShowDialog استفاده کنم اما مشکل اینکه وقتی از این متد استفاده می کنم ,
    Form2 دیگه بسته نمی شه.
    اگه بازم منو راهنمایی کندی ممنون می شم
    با تشکر

  10. #10
    شما اگر از کد

    private void button1_Click(object sender, EventArgs e)
    {
    Form2 frm = new Form2();
    this.Hide();
    frm.ShowDialog();
    This.show();

    }

    استفاده کنید در Form2 دیگر نیازی به Form2_FormClosed ندارید. و در فرم2 فقط this.Close() مشکل شما را حل خواهد کرد.

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

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

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