PDA

View Full Version : یه سوال کوچیک در مورد نحوه ی ذخیره تغییرات و اطلاعات قبل از خروج از برنامه



asd313
پنج شنبه 31 مرداد 1392, 19:30 عصر
بسم الله الرحمن الرحیم

دوستان سلام امیدوارم که حالتون خوب باشه دوستان یه سوال البته ببخشید که تاپیک میدم سوالم اینه :

والا من میخوام قبل از خروج از برنامه ، برنامه در یک مسیج باکس ازم بپرسه که میخوای برنامه خارج بشه و سیو بشه؟ من سه تا گزینه بزارم براش ، کد نویسی اینارو کردم به شکل پایینی ولی نمیدونم چرا عمل نمیکنه

private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{

DialogResult result;
result = MessageBox.Show("Do You Want To Save And Exit?", "Save And Exit !", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question);
if (result == DialogResult.Yes)
{
//save and Exit
}
if (result == DialogResult.No)
{
//Just Exit
}
if (result == DialogResult.Cancel)
{
//از برنامه خارج نشود
}

}

دوستان من هر کاری میکنم وقتی مسیج باکسه میاد هر گزینه ای که بزنم هیچ کار خاصی نمیکنه و برنامه خارج میشه ، چه کنسل بزنم چه یس بزنم و چه نو !!!

لطفا کمکم کنید دقیقا باید چیکار کنم؟ آیا این کد هایی که من نوشتم درسته؟ لطفا کمکم کنید . . .

یا حق

mehrdad1991h
پنج شنبه 31 مرداد 1392, 19:38 عصر
توی برنامه ی اصلیتون هم قسمت های زیر دقیقا به همین شکل هستند ؟

if (result == DialogResult.Yes) {
//save and Exit
}
if (result == DialogResult.No)
{
//Just Exit
}
if (result == DialogResult.Cancel)
{
//از برنامه خارج نشود
}


اگه اینجوریه که خوب هیچ کاری هم نباید صورت بگیره
شما در هر قسمت باید کدش را بزاری دیگه

nice_boy_a
پنج شنبه 31 مرداد 1392, 19:53 عصر
سلام.
دوست عزیز قبل از همه ی کدهات دستور زیر رو بنویس

e.cancel=true;

asd313
پنج شنبه 31 مرداد 1392, 20:11 عصر
سلام.
دوست عزیز قبل از همه ی کدهات دستور زیر رو بنویس

e.cancel=true;


خب داداش این رو هم نوشتم و طبیعتا باید در :


if (result == DialogResult.No) {
//Just Exit
}


هم بنویسم :

e.Cancel=false;

حالا درست شد ولی چرا وقتی no میزنم دوبار مسیج باکس رو نشون میده؟

asd313
پنج شنبه 31 مرداد 1392, 20:11 عصر
توی برنامه ی اصلیتون هم قسمت های زیر دقیقا به همین شکل هستند ؟

if (result == DialogResult.Yes) {
//save and Exit
}
if (result == DialogResult.No)
{
//Just Exit
}
if (result == DialogResult.Cancel)
{
//از برنامه خارج نشود
}


اگه اینجوریه که خوب هیچ کاری هم نباید صورت بگیره
شما در هر قسمت باید کدش را بزاری دیگه

نه خب دوست عزیز کد های خودمو نوشتم ولی هیشکدوم عمل نمیکنن منتها در بخش :

if (result == DialogResult.Cancel)
{
//از برنامه خارج نشود
}


چیزی ننوشتم

-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

asd313
پنج شنبه 31 مرداد 1392, 20:16 عصر
اوه بله متوجه اشتباهم شدم

من اینو اینجوری نوشته بودم برای همین مسیج باکس رو دوبار نشونم میداد :

if (result == DialogResult.No)
{
Application.Exit();
e.Cancel = false;
}

اشکال از Application.Exit(); بود حذفش که کردم درست شد :D