PDA

View Full Version : سوال: جلوگیری از اجرای دستوراتی که بعد از FORM.SHOW() می آیند



aisana
سه شنبه 30 اردیبهشت 1393, 15:34 عصر
من توی پروژه ام 2 تا فرم دارم داخل فرم 1 فرم 2 رو باز می کنم ولی حتما می خوام از متد Show استفاده کنم نه از ShowDialog و می خوام وقتی فرم 2 بسته شد دستوراتی که بعد از show نوشتم اجرا بشه

در فرم 1 :
form2 frm=new form2()
frm.show()
refresh()

نمی خوام از showdialog استفاده کنم چون در اون صورت تا فرم 2 رو نبندم نمی تونم به فرمهای دیگه پرژه برم برای همین از show می خوام استفاده کنم ممنون می شم راهنماییم کنید

parvizwpf
سه شنبه 30 اردیبهشت 1393, 15:37 عصر
الان رفرش اجرا نمیشه؟

aisana
سه شنبه 30 اردیبهشت 1393, 15:44 عصر
چرا اتفاقا اجرا می شه من می خوام وقتی فرم 2 رو بستم اجرا بشه ولی اینجا به محض اجرای show بلافاصله refresh هم اجرا می شه
من از تو آرشیو م که فرم 1 هست فرم 2 رو باز می کنم می خواهم یکسری تغییرات بدم و وقتی فرم 2 رو بستم اون refresh اجرا بشه .

Davidd
سه شنبه 30 اردیبهشت 1393, 16:07 عصر
دستوراتي كه ميخاي بعد از بسته شدن فرم اجرا بشه در رخداد FormClosing بنويسيد.
Form2 frm2 = new Form2();
frm2.FormClosing += new FormClosingEventHandler(frm2_FormClosing);
frm2.Show();

/////
void frm2_FormClosing(object sender, FormClosingEventArgs e)
{
this.Refresh();
}

aisana
سه شنبه 30 اردیبهشت 1393, 16:13 عصر
متد رفرشم تو فرم 1 وجود داره فکر کنم این کدی که شما فرمودید برا وقتی باشه که تو فرم 2 باشه متدم

aliagamon
سه شنبه 30 اردیبهشت 1393, 16:17 عصر
فرم رو اینطوری لود کنین :
(یعنی event بسته شدن رو از تو فرم parent فراخونی کنین )

void refresher(object sender, FormClosedEventArgs e)
{
Refresh();
}


Form2 frm = new Form2();
frm.FormClosed += new FormClosedEventHandler(refresher);
frm.Show();

aisana
سه شنبه 30 اردیبهشت 1393, 16:45 عصر
این خطو frm.FormClosed += newFormClosedEventHandler(refresher); خطا می گیره چه ارگومانی به تابع refresh پاس بدم؟
پیغامش : No overload for 'refresher' matches delegate 'System.Windows.Forms.FormClosingEventHandler'

aliagamon
سه شنبه 30 اردیبهشت 1393, 17:49 عصر
اینو حذف کردین :(دقیقا ارگومان های closed رو باید بدین دیگه ...)
FormClosedEventArgs e