PDA

View Full Version : راهنمایی در مورد جمع زدن مقدار های جند textbox



arash.gh
چهارشنبه 27 مهر 1390, 22:59 عصر
دوستان سلام

می خوام مقایر چند textbox رو باهم جمع بزنم تعداد textbox ها معلوم نیست شاید 4 تا باشه شاید 10 تا

البته 21 تا گذاشتم اما معلوم نیست که هربار چند تا باشه یعنی اینش بستگی داره به کاربر

الان نمیدونم چطوری جمع بزنم.دوستان یه چیزی مسه یه حلقه for یا چیز دیگه ای اگه می تونید راهنمایی کنید.

ممنون

wolf_majid
چهارشنبه 27 مهر 1390, 23:29 عصر
کنترل کردن اینکه فقط عدد وارد بشه دست خودت را می بوسه

float Sum = 0;
foreach (Control ctrl in this.Controls)
{
if (ctrl is TextBox && !string.IsNullOrEmpty(ctrl.Text))
{

try
{
Sum += float.Parse(ctrl.Text);
}
catch
{
MessageBox.Show("عدد وارد کنید نامردا :D");
Sum = 0;
}
}
}
this.Text = Sum.ToString();

arash.gh
چهارشنبه 27 مهر 1390, 23:51 عصر
میشه در مورد کد یه کم توضیح بدید ، یه کم درست متوجه نشدم
ممنون از پاسختون

wolf_majid
پنج شنبه 28 مهر 1390, 01:04 صبح
میشه در مورد کد یه کم توضیح بدید ، یه کم درست متوجه نشدم
ممنون از پاسختون

چرا نشه

float Sum = 0;
برای جمع کردن اعداد نیاز به یک متغیر داریم که مقدار پیش فرضش صفر باشه
foreach (Control ctrl in this.Controls)
foreach یکی از دستوراته سی شارپه که کارش جستجو و گردش در یک آرایه از شی ئه . معادل حلقه for اون به صورت زیره
for(int i=0;i<this.Controls.Count;i++)
دقت کن که ctrl مقدار صفرم این ارایست و هر بار به خانه بعدی آرایه می پره
this.controls یعنی یک آرایه از تمام کنترل های موجود بر روی فرم

if (ctrl is TextBox && !string.IsNullOrEmpty(ctrl.Text))
مشخص می کنه که اگر کنترل مورد نظر یا همون ctrl جعبه متن بود و همچنین خالی هم نبود

try
{
Sum += float.Parse(ctrl.Text);
}
بلوک try برای جلوگیری از استثناست یعنی اتفاقاتی که ممکنه در زمان اجرا توسط کاربر ایجاد بشه مثل دادن مقدار حرفی به جعبه متن
اگر استثنایی رخ دهد برنامه به سراغ بلوک catch میره و ادامه برنامه از اونجا اجرا میشه