PDA

View Full Version : messagebox با دکمه های Yes/No



aghayex
یک شنبه 22 دی 1392, 16:34 عصر
با سلام
من در برنامم نیاز به messagebox با دکمه های Yes/No دارم به این صورت که سوالی از کاربر پرسیده بشه و برنامه منتظر بمونه تا تجوابشو بگیره (showdialog) .
ولی چون به طور پیش فرض این دکمه ها در messagebox سیلولایت نیست اومدم از childwindows استفاده کردم ولی چون دارم از مدل mvvm استفاده می کنم نمی دونم چطوری یه childwindows رو فراخوانی کنم و بعد از بستن اون دکمه ای که کاربر فشار داده رو در فرم اصلی تشخیص بدم .
البته اینو بگم که من برای لود کردن فرم هام از مسنجر mvvm استفاده می کنم

aghayex
جمعه 27 دی 1392, 20:38 عصر
کسی تا حالا به این مشکل برنخورده ؟؟؟؟؟؟؟؟؟؟؟

d_derakhshani
شنبه 05 بهمن 1392, 00:02 صبح
باید یک تابع Callback بزاری. اگه خواستی بگو بیشتر توضیح بدم

aghayex
شنبه 05 بهمن 1392, 07:22 صبح
خوب لطف کنید و بزارید

d_derakhshani
یک شنبه 06 بهمن 1392, 17:43 عصر
باید یک usercontrol داشته باشید که یک delegate به عنوان callback داشته باشه. از event هم می تونید استفاده کنید فرقی نداره. در ساخت کنترل رویداد اصولی تره.
بهتره اسمش MyMesageBox باشه و یک تابع Show داشته باشه از نوع استاتیک(اگه از callback استفاده می کنید باید اون رو به عنوان ورودی دریافت کنید). وقتی تابع Show صدا زده میشه یک نمونه از کلاس مورد نظر ساخته میشه و در درون ChildWindow قرار میگیره و نمایش داده میشه. با زدن هر کدوم از دکمه ها ابتدا مقدار DialogResult(که بهتره یک enum تعریف شده توسط خودتون باشه) به رویداد یا تابع callback فرستاده میشه و سپس پنجره بسته میشه(باید parent کنترل جاری رو به Childwindow کست کنید)