PDA

View Full Version : سوال: مشکل در مورد متد showdialog() و کلید cancel در messageBox



rainlover
جمعه 13 شهریور 1388, 17:38 عصر
با سلام و احترام
من دو تا فرم دارم که کلیدی روی فرم یک هست که متد کلیکش فرم دوم رو نشون میده از نوع ShowDialog
در یکی از متد های فرم 2 یه messageBox دارم از نوع ok,Cancel
اگه روی Cancel کلیک بشه متاسفانه با اینکه هیچ ربطی نداره کل فرم 2 رو می بنده و بر می گرده به فرم 1.
اگر فرم دو رو با متد Show() نمایش بدم این مشکل پیش نمیاد.
چی کار کنم که هم با ShowDialog کار کنم هم فرمم به کارش ادامه بده
با تشکر

atryad
جمعه 13 شهریور 1388, 21:36 عصر
با سلام و احترام
من دو تا فرم دارم که کلیدی روی فرم یک هست که متد کلیکش فرم دوم رو نشون میده از نوع ShowDialog
در یکی از متد های فرم 2 یه messageBox دارم از نوع ok,Cancel
اگه روی Cancel کلیک بشه متاسفانه با اینکه هیچ ربطی نداره کل فرم 2 رو می بنده و بر می گرده به فرم 1.
اگر فرم دو رو با متد Show() نمایش بدم این مشکل پیش نمیاد.
چی کار کنم که هم با ShowDialog کار کنم هم فرمم به کارش ادامه بده
با تشکر
با سلام
من سوال شما رو متوجه نشدم ولی در مورد کنترل messagebox میتونید به این صورت کنترل کنید
http://up.iranblog.com/2/1252176424.jpg

mahdi_7610
جمعه 13 شهریور 1388, 21:55 عصر
من منظور شما را اینطوری متوجه شدم که شما میخواهید توی فرم دوم با یک messageBox فرم را ببندید . به طوری که وقتی روی دکمه ok کلیک شد فرم 2 بسته بشه و فرم 1 باز بمونه و وقتی روی Cancel کلیک شد فرم بسته نشه و عملی اتفاق نیفته

میتونی مطابق کد زیر عمل کنی


private void Form2_FormClosing(object sender, FormClosingEventArgs e)
{
DialogResult result;
result = MessageBox.Show("ایا فرم بسته شود ؟", "Closing", MessageBoxButtons.OKCancel, MessageBoxIcon.Question);
if (result != DialogResult.OK)
e.Cancel = true;
}

Saeed.Masoumi
شنبه 14 شهریور 1388, 00:24 صبح
سلام
ببین مشکل شما چیز دیگست
هیچ ربطی به اون MessageBox نداره
شما روی اون دکمه ای که متد مربوط به MessageBox رو انجام می ده کلیک کن بعد از پروپرتیس
مقدار DialogResault رو برابر None بزار همین
موفق باشی

rainlover
شنبه 14 شهریور 1388, 16:31 عصر
ببینید کلیدی که روی فرم 2 هست کار جداگانه ای می کنه و تو تابع اون یه messageBox هم هست.
برای ok اون یه کارایی می کنه ولی می خوام اگه cancel کلیک شد کاری نکنه.
ولی چون فرم من ShowDialog() صدا زده شده وقتی cancel روی messageBox کلیک میشه فرمم رو میبنده که نمی خوام اینطور باشه. می خوام وقتی روی cancel کلیک شد کاری نکنه
ضمنا مجددا تاکید می کنم که اکه من فرم رو با متد Show() صدا بزنم این مشکل پیش نمیاد.
امیدوارم متوجه بشید

rainlover
شنبه 14 شهریور 1388, 16:43 عصر
سعید معصومی دستت درد نکنه
چارش همین بود
خیلی حال دادی
این property چی کار می کنه؟
میشه مفصل بگی؟
ممنون

Saeed.Masoumi
شنبه 14 شهریور 1388, 18:58 عصر
سلام
ببین چون شما داری از ShowDialog استفاده می کنی اون خاصیت میادنوع برگشت داده توسط دیالوگتون (اینجا همون فرم 2) تعییدن می کنه مثه میسج باکس فرض کن میسچ باکس یک فرمه بعد دکمه Ok رو با خصایت ok و دکمه cancel رو با خاصیت کنسل مقدار دهی کردند.بعد از زدن هر دکمه اون خاصیت به عنوان برگشتی دیالوگ در نظر گرفته می شود و دیالوگ خود بهخود بسته می شود مثه همون میسج باکس که مهم نیست کدوم دکمه رو می زنی ok , cancel , yes,no,... در هر صورت فرم (میسج باکس) بسته می شه ولی نوع برگشتیش فرق می کنه
خدا کنه یه جور گفته باشم متوجه بش(گرسنگی و .... :لبخند:)
موفق باشی