PDA

View Full Version : سوال: پیشنهاد برای حل یک مشکل.



mohammad_2039
دوشنبه 23 فروردین 1389, 09:05 صبح
با سلام خدمت همه دوستان عزیز

من دارم یه برنامه مینویسم به یه مشکل برخورد کردم خواستم نظر دوستان رو هم جویا بشم. من تو برنامه تعداد زیادی تکس باکس دارم که دسته بندی کردم و هر دسته مقید به یک چک باکس هست وقتی یکی چک میخوره تکس باکس هاش روشن میشه برای ورود اطلاعات، کاربر میتونه همه رو چک بزنه. تو چندتا از این تکس باکس ها عدد وارد میشه و بقیه با انجام یکسری محاسبات از همون چندتای اول پر میشن. کد ها رو در رویداد TextChange تکس باکس ها نوشتم تا به محض تغییر اعداد محاسبه بشه و تو بقیه تکس باکس ها نمایش داده بشه. مشکل اینجاست که چون اکثر این تکس باکس ها به هم وابسته اند وقتی کاربر عدد یه تکس باکس رو Del میکنه یا یه چک باکس رو بعد از ورود اطلاعات خاموش میکنه یا کلا کمی دستکاری میکنه تکس باکس ها رو برنامه با خطا مواجه میشه . من n تا دستور if و else برای کنترل وضعیت های مختلف نوشتم اما باز با شرایط جدید مواجه میشم و برنامه خطا میده. چطوری میتونم این مشکل رو حل کنم ؟ یا بهتر بگم چه راه منطقی و اصولی در این مواقع برای کنترل وجود داره تا جلوی هر گونه خطا گرفته بشه. با تشکر فراوان:لبخندساده:

ASKaffash
دوشنبه 23 فروردین 1389, 09:37 صبح
سلام
از خاصیت Tag استفاده کنید و هر دسته را با یک عدد تفکیک کنید بعد همه Event ها را به یک متد هدایت کنید واز محتوای Tag ها محاسبات یا هر چیز دیگر را مدیریت کنید

mohammad_2039
دوشنبه 23 فروردین 1389, 09:55 صبح
من خوب متوجه نشدم باید چیکار کنم:گیج: یه کم ریز تر توضیح میدی لطفا. یا نمونه ای چیزی هست برم ببینم؟ ممنون میشم:لبخندساده:

mohammad_2039
دوشنبه 23 فروردین 1389, 13:46 عصر
امکان داره دوستان راهنمایی کنند لطفا:گریه:

#aliyari_C
دوشنبه 23 فروردین 1389, 14:45 عصر
سلام اگر روش شی گرا را پیاده سازی کنی بعد نیست , یعنی می توان شی گرا را در مسئله n تا If-else پیاده سازی کنی و حتی TextBox ها تم دارای مدیریت بهتری می شود.
موفق باشی
-----------------------------
چون به دریا می توانی راه یافت
سوی یک قطره چرا باید شتافت

ASKaffash
دوشنبه 23 فروردین 1389, 15:04 عصر
من خوب متوجه نشدم باید چیکار کنم:گیج: یه کم ریز تر توضیح میدی لطفا. یا نمونه ای چیزی هست برم ببینم؟ ممنون میشم:لبخندساده:
سلام
این یک نمونه که بخش اصلی کد این است :


public Form1()
{
InitializeComponent();
this.radioButton1_CheckedChanged(this.radioButton1 , null);
}
private void radioButton1_CheckedChanged(object sender, EventArgs e)
{
RadioButton RB = (RadioButton)sender;
for (int i = 0; i < this.Controls.Count; i++)
{
if (this.Controls[i] is TextBox)
{
TextBox TB = (TextBox)this.Controls[i];
TB.Enabled = RB.Tag.ToString() == TB.Tag.ToString();
}
}
}

mohammad_2039
سه شنبه 24 فروردین 1389, 11:22 صبح
خيلي ممنونم ASKaffash عزيز
فقط من هركاري ميكنم كه محاسبات انجام شده رو تو تكس باكس ها نمايش بدم نميتونم باز خطا ميده:گریه::عصبانی++:.جسارت منو ببخش واقعا شرمنده:خجالت:اگه ميشه يه چند تا محاسبه هم به اين كد اضافه كنيد من ببينم چطوري كار ميكنه. مثلا تو تكس باكس هاي ستون اول و قتي اعداد رو وارد ميكنيم يه عملياتي مثل جمع و تفريق روش انجام بشه و تو تكس باكس هاي ستون هاي دوم و سوم نشون داده بشه. باز هم ممنونم:قلب: