PDA

View Full Version : سوال: dialog result در C#‎



zahra_mt
یک شنبه 13 اسفند 1391, 06:56 صبح
سلام
این کد مشکلش چیه؟
ممنون
private void newToolStripMenuItem_Click(object sender, EventArgs e)
{
if(richTextBox1.Modified)
{
DialogResult dr = MessageBox.Show("Do you want to save it?","Are you sure?",MessageBoxButtons.YesNoCancel);
if(dr=="Yes")
richTextBox1.SaveFile(CurrentFileName);
if(dr=="No")
richTextBox1.Clear();
//if(dr=CancelButton)


}

gwbasic
یک شنبه 13 اسفند 1391, 07:11 صبح
شما بگید مشکلش چیه!!! نه در عنوان تاپیک مشکلتون رو مطرح کردید نه در تشریح اون. اگر خطایی هست اونو مطرح کنید و اگر به لحاظ منطقی مشکلی داره نیازتون رو بگید که چی می خواید اما نشده...

در هر صورت شما نوشتید که اگر کنترلتون modified شده در صورت نیاز کاربر اونو ذخیره کن یا پاک کن در مورد Cancel هم که کدی ننوشتید که اشتباه هست باید امکان کنسل رو به کاربر بدین و نکته بعدی اینکه کد ذخیره متن رو نباید در پشت رویداد کلیک new بنویسید برای نم بیشتر بهتره که عمل ذخیره رو در یک متدی به نام Save جدا بنویسید و اونو هرجا که لازم بود صداش کنید.

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

vahid2112
یک شنبه 13 اسفند 1391, 07:13 صبح
سلام
یه { کم داره
درست میگم؟

vahid2112
یک شنبه 13 اسفند 1391, 07:15 صبح
اینطوری هم میتونید از DialogResult استفاده کنید:

if( MessageBox.Show("Do you want to save it?","Are you sure?",MessageBoxButtons.YesNoCancel)==DialogResult.Yes)

gwbasic
یک شنبه 13 اسفند 1391, 07:42 صبح
سلام
یه { کم داره
درست میگم؟

ببینید شما جواب سوال رو دادید ولی کمکی به دوستمون نکردید کدی که بالا گذاشتن داره داد می زنه که مشکلش چیه و حتی اگر با یک نگاه متوجه نشن می تونن به Error دقت کنن و به راحتی تشخیص بدن مشکل از کجاست. مثلا در این مورد احتمالا با خطای expected { مواجه می شن که با کمی بررسی متوجه می شن که کجا آکولاد رو نبستن.

بهتره به جای پاسخ نهایی نحوه برخورد با خطا آموزش داده بشه که چطور اونو تشخیص بدیم بررسی کنیم Debug کنیم و .... یه جواب صرف شاید در لحظه مشکل رو برطرف کنه اما در آینده شخص باز دچار مشکل می شه

zahra_mt
یک شنبه 13 اسفند 1391, 07:45 صبح
شما بگید مشکلش چیه!!! نه در عنوان تاپیک مشکلتون رو مطرح کردید نه در تشریح اون. اگر خطایی هست اونو مطرح کنید و اگر به لحاظ منطقی مشکلی داره نیازتون رو بگید که چی می خواید اما نشده...

در هر صورت شما نوشتید که اگر کنترلتون modified شده در صورت نیاز کاربر اونو ذخیره کن یا پاک کن در مورد Cancel هم که کدی ننوشتید که اشتباه هست باید امکان کنسل رو به کاربر بدین و نکته بعدی اینکه کد ذخیره متن رو نباید در پشت رویداد کلیک new بنویسید برای نم بیشتر بهتره که عمل ذخیره رو در یک متدی به نام Save جدا بنویسید و اونو هرجا که لازم بود صداش کنید.

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

ممنونم ازتون
save رو جدا تعریف کردم و این save برای وقتیه که کاربر new می کنه و تکست رو ذخیره نکرده
ازاین قسمت ایراد می گیره :
if(dr=="Yes")
و این error رو میده :
Error 1 Operator '==' cannot be applied to operands of type 'System.Windows.Forms.DialogResult' and 'string'

vahid2112
یک شنبه 13 اسفند 1391, 07:49 صبح
ببینید شما جواب سوال رو دادید ولی کمکی به دوستمون نکردید کدی که بالا گذاشتن داره داد می زنه که مشکلش چیه و حتی اگر با یک نگاه متوجه نشن می تونن به Error دقت کنن و به راحتی تشخیص بدن مشکل از کجاست. مثلا در این مورد احتمالا با خطای expected { مواجه می شن که با کمی بررسی متوجه می شن که کجا آکولاد رو نبستن.

بهتره به جای پاسخ نهایی نحوه برخورد با خطا آموزش داده بشه که چطور اونو تشخیص بدیم بررسی کنیم Debug کنیم و .... یه جواب صرف شاید در لحظه مشکل رو برطرف کنه اما در آینده شخص باز دچار مشکل می شه


بله حق با شماست درست میگین.

vahid2112
یک شنبه 13 اسفند 1391, 07:51 صبح
ممنونم ازتون
save رو جدا تعریف کردم و این save برای وقتیه که کاربر new می کنه و تکست رو ذخیره نکرده
ازاین قسمت ایراد می گیره :
if(dr=="Yes")
و این error رو میده :
Error 1 Operator '==' cannot be applied to operands of type 'System.Windows.Forms.DialogResult' and 'string'


به متن Error دقت کنید!
جواب مشکل شما دقیقا همین یک خط هست!




Error 1 Operator '==' cannot be applied to operands of type 'System.Windows.Forms.DialogResult' and 'string'

zahra_mt
یک شنبه 13 اسفند 1391, 07:53 صبح
خب چیکارش کنم؟

zahra_mt
یک شنبه 13 اسفند 1391, 08:23 صبح
هیچکی بلد نبود؟:افسرده:

veniz2008
یک شنبه 13 اسفند 1391, 08:26 صبح
خب چیکارش کنم؟
سلام. همیشه باید دو چیز از یک جنس رو با هم مقایسه کرد.
شما میخوای یه خروجی از نوع Dialog Result رو با یه رشته مقایسه کنی معلومه هنگ میکنه.

if(dr.ToString() =="Yes")


موفق باشید.

vahid2112
یک شنبه 13 اسفند 1391, 08:29 صبح
خب چیکارش کنم؟

dr شما از نوع DialogResult هست و شما دارین اون رو با رشته مقایسه میکنید!

بهتره اینطور بنویسید:

if( MessageBox.Show("Do you want to save it?","Are you sure?",MessageBoxButtons.YesNoCancel)==DialogResult.Yes)




یا همون کدهای خودتون رو اینطور تغییر بدین:

if(dr==DialogResult.Yes)
richTextBox1.SaveFile(CurrentFileName);
if(dr==DialogResult.No)
richTextBox1.Clear();

gwbasic
یک شنبه 13 اسفند 1391, 11:34 صبح
لطف کنید در تاپیکی جدا سوالتون رو به طور کامل با عنوان مناسب مطرح و پیگیری کنید