PDA

View Full Version : سوال: تشخیص باز بودن form



hhaaddii1363
چهارشنبه 15 مهر 1394, 19:57 عصر
با سلام .
چطور میتونیم بفهمیم که فرم در حال اجرا هست یا نه منظور کدش .
من یه button دارم که وقتی می زنیش یه form دیگه باز میشه . می خوام وقتی بار دوم button رو زدم پیغام بده form در حال اجراست
با تشکر .

shahrabiamir
چهارشنبه 15 مهر 1394, 20:31 عصر
درود


Form2 f2 = new Form2();
if (Application.OpenForms[f2.Name] == null)
f2.Show();
else
MessageBox.Show("Form2 is activated");

erfan_urchin
چهارشنبه 15 مهر 1394, 20:32 عصر
شما میتونی از showDialog استفاده کنی
Form1 f1 = new Form1();
f1.ShowDialog();

abdullah20
چهارشنبه 15 مهر 1394, 21:10 عصر
بهتره اگر باز بود فعال بشه نه اینکه پیغام بده:

if (Application.OpenForms["frmAddUser"] == null)
{
frmAddUser fAddUser = new frmAddUser();
fAddUser.Name = "frmAddUser";
fAddUser.Show();
}
else
Application.OpenForms["frmAddUser"].Activate();

hhaaddii1363
چهارشنبه 15 مهر 1394, 21:55 عصر
با تشکر
ولی یه بار که باز می کنم بعد می بندم دیگه اجرا نمیشه میگه در حال اجراست

hhaaddii1363
چهارشنبه 15 مهر 1394, 21:56 عصر
متضاد null چیه
میشه بعد از if یه else if بیارم بعد null رو مخالفش رو بنویسم ؟ درست میشه

abdullah20
چهارشنبه 15 مهر 1394, 22:16 عصر
غیر ممکنه دوست عزیز
حتما فرمتون بسته نمیشه
مثلا مخفی میشه

hhaaddii1363
چهارشنبه 15 مهر 1394, 22:17 عصر
از showdialag استفاده می کنم منتها قبل از لود شدن form یه loading نشون میدم هر وقت form مورد نظر رو با showdialog نشون میدم لودینگ همینجوری میمونه ولی وقتی با show نشون می دم form loading بعد از لود شدن میره پی کارش

hhaaddii1363
چهارشنبه 15 مهر 1394, 22:20 عصر
frm_chapfactor frmch = new frm_chapfactor();
if (Application.OpenForms[frmch.Name]==null)
{
loding lodg = new loding();
lodg.startprog();
for (int i = 0; i <= 30000; i++)
{

}
frmch.Show();

lodg.stopprog();
}

else
{

MessageBox.Show ("در حال اجرا");

}