PDA

View Full Version : مبتدی: بستن همزمان چند فرم(مشکل)



mehrdad1991h
جمعه 17 تیر 1390, 02:06 صبح
سلام
منا به خاطر سوال جزئیم ببخشید
خیلی تازه کارم خوب
من یه فرم دارم برای دکمه ی Close تعریف کردم که با کلیک یه فرم دیگه را نمایش بدهد
تو اون فرم جدید چندتا کلیک داریم
کنسل را کلیک کنه می خوام فقط همون فرم بسته بشه اوکی کنه بره تو تسک بار پهلو ساعت و دکمه Exit هم بزنه همه فرم های باز بسته بشن کامل
حالا اگه Exit بزنه دوباره میاد به خاطر دستور دکمه ی Close در فرم اول تکرار میشه و فرم 2 دوباره باز میشه و برنامه بسته نمیشه
وقتی میره پهلو ساعت ( ای خدا اخه حالا وقتش ببود اسم اینا یادم بره همش بگم پهلو ساعت http://www.iran-eng.com/images/smilies/frown.gifhttp://www.iran-eng.com/images/smilies/confused.gif) می خوام با کلیک کردن شو بشه ولی فقط دستور راست کلیک را اجرا میکنه

میشه لطفا کدهاش را بگید
سپاس

mrbm_2007
جمعه 17 تیر 1390, 03:29 صبح
سلام
باید از یه چیزی مثل این استفاده کنی

private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
if(e.CloseReason!=CloseReason.ApplicationExitCall)
{
var frm = new Form2();
frm.ShowDialog();
}
}


پارامتر e.CloseReason علت بسته شدن فرم رو تعیین می کنه و در حالت فوق اگر با کد زیر برنامه بسته بشه دیگه فرم 2 نمایش داده نمیشه

Application.Exit();

mehrdad1991h
جمعه 17 تیر 1390, 13:55 عصر
ببینید اومد رو خاصیت کلیک ضربدر Close که بالای فرم هست نوشتم که
با زدن این کلیک یه فرم جدید باز بشه
تو فرم جدید 3 کلیک داریم
1 Exit
که من باش مشکل دارم
وقتی این دکمه را میزنیم دستور application.exit() را اجرا میکنه ولی چون در فرم1 خاصیت کلیک ضربدر Close این شده که فرم 2 را باز کنه میاد دوباره فرم 2 را باز میکنه

هنوز چیزی که گفتید را تست نکردم ببینم درست میشه یا نه

2 Cancel
دستور که برا این کلیک دادم اینه
this.close()
OK 3
که این هم براش این کد را نوشتم

{
if (exit == 1)
{
Application.Exit();
}
else
{
e.Cancel = true;
this.Hide();
}
}

private void tsmiShow_Click(object sender, EventArgs e)
{
this.Show();
notifyIcon1.ShowBalloonTip(2000);
}

int exit = 0;

private void tsmiExit_Click(object sender, EventArgs e)
{
exit = 1;


Application.Exit();

}

با کلیک رو این فرم هاید میشه و وقتی روی شو توی تسکبار راست کلیک می کنیم دوباره نشونش میده
حالا می خوام وقتی روش چپ کلیک هم بکنم نشونش بدهد
و قبل از این که روی Ok کلیک کنیم ایکن و منو برنامه که تو تسکبار هست نشون داده نشه بعدم که شو را کلیک کردیم دوباره تو تسکبار هاید بشه



با گفته های شما در نظر میگیریم که گزینه 1 و 2 حل شده باشند
برا این مورد 3 باید چی کار کرد؟

بازم ممنون از پاسختون
سپاس

Reza_Yarahmadi
جمعه 17 تیر 1390, 15:19 عصر
راحتترین راه استفاده از خاصیت DialogResult فرم است. به این صورت که در فرم اصلی و در رویداد FormClosing کد زیر رو بنویسید
Form2 f2 = new Form2();
DialogResult result = f2.ShowDialog();

if(result == DialogResult.Cancel)
e.Cancel = true;
else if(result == DialogResult.OK)
{
e.Cancel = true;
this.Hide();
notifyIcon1.ShowBalloonTip(2000);
}

در فرمی هم که 3 دکمه روی اونه کدی خاصی نیاز نیست نوشته بشه فقط به ازا هر دکمه (با توجه به کار هر دکمه) کدی مثل کد زیر بنویسید
this.DialogResult = DialogResult.OK;
this.Close();

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

با کلیک رو این فرم هاید میشه و وقتی روی شو توی تسکبار راست کلیک می کنیم دوباره نشونش میده
حالا می خوام وقتی روش چپ کلیک هم بکنم نشونش بدهد
و قبل از این که روی Ok کلیک کنیم ایکن و منو برنامه که تو تسکبار هست نشون داده نشه بعدم که شو را کلیک کردیم دوباره تو تسکبار هاید بشه

mehrdad1991h
جمعه 17 تیر 1390, 21:21 عصر
مشکل حل نشد

ببخشید من سوالام را و برنامه ی نمونه ای را قرار دادم
لطفا بگیریدش و ببینید من باید چی کار کنم
مشکلاتم ررا توی یک عکس نشون دادم با توضیحات لازم
فایل را ضمیمه کردم با این حال تو پارس اسپیس هم اپ کردم که راحت تر بتونید دانلودش کنید
اینم لینکش

ببخشیدhttp://www.iran-eng.com/images/smilies/icon_redface.gif
فایل ضمیمه اپلود شده در همین انجمن
72140
فایل در پارس اسپیس
M.rar (http://parsaspace.com/files/0438994884/M.rar.html)
بازم ممنونhttp://www.iran-eng.com/images/smilies/icon_gol.gif

اگه امکانش بود تو همین برنامه کدش را درست کنید بزارید تا دانلودش کنم مشکلم را بفهمم
سپاسhttp://www.iran-eng.com/images/smilies/icon_gol.gif

http://www.iran-eng.com/images/smilies/icon_gol.gif

mehrdad1991h
شنبه 18 تیر 1390, 10:55 صبح
:متفکر:ajab

Reza_Yarahmadi
شنبه 18 تیر 1390, 17:57 عصر
برنامه خودتون ضمیمه شد.

mehrdad1991h
شنبه 18 تیر 1390, 18:13 عصر
برنامه خودتون ضمیمه شد.

خیلی ممنون و متشکرم
سپاس:تشویق: