PDA

View Full Version : سوال: بستن فرم اول پس از باز شدن فرم دوم



MS.Worm
جمعه 31 تیر 1390, 18:56 عصر
سلام خسته نباشيد
دو تا فرم دارم كه داخل فرم شماره 1 يك button گذاشتم كه با استفاده از كد زير، فرم شماره 2 رو نشون ميده.

Form a = new Form2();
a.Show();

اما ميخوام وقتي فرم شماره 2 نمايش داده مي‌شود، فرم شماره 1 بسته شود ولي با نوشتن اين كد به محض نمايش فرم 2 هر دو فرم بسته مي‌شود.


Form a = new Form2();
a.Show();
this.Close();

يكي از دوستان گفت كه ميتونم فرم 1 رو مخفي كنم اما با اين كار وقتي فرم شماره 2 رو ميبندم هنوز برنامه بسته نشده و اين اشكال برنامه مي‌باشد.

دوستان كمك كنيد چجوري فرم اول بسته شود و فرم دوم نمايش داده شود.

mohammad_cmd
جمعه 31 تیر 1390, 19:23 عصر
شما باید در form2_load این کد را بنویسید
form1.close();

MS.Worm
جمعه 31 تیر 1390, 19:44 عصر
داخل لود فرم 2 اصلا متودي در رابطه با close فرم 1 وجود نداره.

ma.rad
جمعه 31 تیر 1390, 19:50 عصر
داخل لود فرم 2 اصلا متودي در رابطه با close فرم 1 وجود نداره.

به این شکل باید باشه:

Form3 frm = new Form3();
this.Close();
frm.Show();

Farshid007
جمعه 31 تیر 1390, 20:47 عصر
به این شکل باید باشه:

Form3 frm = new Form3();
this.Close();
frm.Show();

اینجوری جفت فرم ها بسته میشن!!!
Form2 frm = new Form2();
this.Hide();
frm.Show();
اینجوری درست تره

mmd2009
جمعه 31 تیر 1390, 22:03 عصر
با سلام خدمت دوست عزیز


يكي از دوستان گفت كه ميتونم فرم 1 رو مخفي كنم اما با اين كار وقتي فرم شماره 2 رو ميبندم هنوز برنامه بسته نشده و اين اشكال برنامه مي‌باشد.با توجه به این مطلب اگر قرار باشه این کارو بکنیم...

به شکل زیر عمل کنید

private void button1_Click(object sender, EventArgs e)
{
// ریسمانی برای باز کردن فرم شماره دو
Thread Form2 = new Thread(delegate() { RunForm2(new Form2()); });
Form2.Start();
this.Close();
}
/// <summary>
/// متدی برای باز کردن فرم شماره دو
/// </summary>
/// <param name="newForm2"></param>
private void RunForm2(Form2 newForm2)
{
Application.Run(newForm2);
}


با این کار وقتی از فرک دو خارج میشیم از برنامه کلا خارج میشه

موفق باشید

ma.rad
جمعه 31 تیر 1390, 23:20 عصر
اینجوری جفت فرم ها بسته میشن!!!
Form2 frm = new Form2();
this.Hide();
frm.Show();
اینجوری درست تره

نه دوست عزیز بسته نمی شن تست کنید

amin tavakoli
جمعه 31 تیر 1390, 23:42 عصر
سلام شما از این کد هم میتونید استفاده کنید
private void button1_Click(object sender, EventArgs e)
{

Form1 frm = new Form1();
this.Visible = true;
frm.FormClosed += new FormClosedEventHandler(frm_FormClosed);
frm.Show();

}

void frm_FormClosed(object sender, FormClosedEventArgs e)
{
this.Visible = true;
}
دقت کنید که در هنگام تایپ FormClosed برنامه به شما اعلان می کند با فشردن tab بقیه کد به طور اتوماتیک اضافه میشو د ودر انتهای خط با فشردن tab تابع void frm_FormClosed . بقیه کدها رو هم دقیقا مثل بالا تایپ کن
موفق باشی