Лучший отвечающий
Сложение N количества textbox

Вопрос
-
Добрый день!
Вкратце : есть программа которая создает n количество textbox(n вводится с клавиатуры). Нужно сложить эти textbox и вывести ответ. Обыскал все форумы, а даже похожего ничего не нашел. Фишка в том, что textbox появляются в ходе работы программы и заранее обозначить textbox я не могу. Помогите чем можете.
29 мая 2017 г. 21:25
Ответы
-
decimal sum=0.0M; foreach(Control x in myContainer.Controls) { if(x is TextBox)sum+=Convert.ToDecimal((x as TexBox).Text); }
- Изменено VadimTagil 30 мая 2017 г. 2:57
- Предложено в качестве ответа Алексей ЛосевEditor 30 мая 2017 г. 6:15
- Помечено в качестве ответа Maksim MarinovMicrosoft contingent staff, Moderator 1 июня 2017 г. 7:24
30 мая 2017 г. 2:57 -
Условие нужно вставить внутрь цикла, а вывод значения - после него. Наверное, вам нужно почитать учебные материалы, если вы принципы построения программы не понимаете. А не спрашивать каждый раз на форуме.
int sum=0; int num; foreach (Control x in panel1.Controls) { if(x is TextBox) { num = Convert.ToInt32((x as TextBox).Text); if (num % 5 == 0 && num % 7 != 0) {sum+=num;} } } label3.Text = sum.ToString();
- Помечено в качестве ответа Maksim MarinovMicrosoft contingent staff, Moderator 1 июня 2017 г. 7:24
31 мая 2017 г. 18:57
Все ответы
-
decimal sum=0.0M; foreach(Control x in myContainer.Controls) { if(x is TextBox)sum+=Convert.ToDecimal((x as TexBox).Text); }
- Изменено VadimTagil 30 мая 2017 г. 2:57
- Предложено в качестве ответа Алексей ЛосевEditor 30 мая 2017 г. 6:15
- Помечено в качестве ответа Maksim MarinovMicrosoft contingent staff, Moderator 1 июня 2017 г. 7:24
30 мая 2017 г. 2:57 -
decimal sum=0.0M; foreach(Control x in myContainer.Controls) { if(x is TextBox)sum+=Convert.ToDecimal((x as TexBox).Text); }
Vadim, не могли бы вы поподробнее рассказать как мне это использовать? Просто я не очень понял
31 мая 2017 г. 11:55 -
Вам нужно заменить myContainer на название контейнера, в котором лежат ваши TextBox, и разместить этот код в каком-либо обработчике события.31 мая 2017 г. 13:41
-
Вам нужно заменить myContainer на название контейнера, в котором лежат ваши TextBox, и разместить этот код в каком-либо обработчике события.
Я все поменял, но когда я пытаюсь вывести ответ на panel он не может тип decimal перевести в string. Что можно сделать?
private void button2_Click(object sender, EventArgs e) { decimal sum = 0.0M; foreach (Control x in panel1.Controls) { if (x is TextBox) sum += Convert.ToDecimal((x as TextBox).Text); } panel2.Text = sum; }
31 мая 2017 г. 15:55 -
Тут все просто: sum.ToString();31 мая 2017 г. 16:05
-
Тут все просто: sum.ToString();
Спасибо огромное. Но образовалась небольшая проблемка, когда я нажимаю на кнопку он ничего не выводит.
С чем это может быть связано? Если что могу прислать весь кусок кода.
31 мая 2017 г. 16:11 -
Тут все просто: sum.ToString();
Спасибо огромное. Но образовалась небольшая проблемка, когда я нажимаю на кнопку он ничего не выводит.
С чем это может быть связано? Если что могу прислать весь кусок кода.
31 мая 2017 г. 16:16 -
Vadim, извините меня пожалуйста, я вам уже, наверное, надоел. У меня последний вопрос. Как мне суммировать и выводить только те числа, которые делятся на 5 и не делятся на 7? Очень меня выручите. Спасибо.31 мая 2017 г. 16:21
-
Находя остаток от целочисленного деления. (Поменяйте везде Decimal на int если у вас работа только с целыми числами.)
int num = Convert.ToInt32((x as TextBox).Text);
if( num % 5 == 0 ) {/*число делится на 5*/}
else {/*число не делится на 5*/}
- Изменено VadimTagil 31 мая 2017 г. 17:16
31 мая 2017 г. 17:15 -
Находя остаток от целочисленного деления. (Поменяйте везде Decimal на int если у вас работа только с целыми числами.)
int num = Convert.ToInt32((x as TextBox).Text);
if( num % 5 == 0 ) {/*число делится на 5*/}
else {/*число не делится на 5*/}
Смотрите, я попробовал и получается так, что он мне выдает последнее число в textbox. У меня должно работать так
А получается так
Вот скрипт к 2 картинке и я не могу понять почему он не хочет работать так, как надо...
foreach (Control x in panel1.Controls) { int sum = Convert.ToInt32((x as TextBox).Text); if (sum % 5 == 0) {/*число делится на 5*/} else {/*число не делится на 5*/} label3.Text = sum.ToString();
Может быть я тормоз, но я не могу в этом разобраться.
31 мая 2017 г. 18:32 -
Находя остаток от целочисленного деления. (Поменяйте везде Decimal на int если у вас работа только с целыми числами.)
int num = Convert.ToInt32((x as TextBox).Text);
if( num % 5 == 0 ) {/*число делится на 5*/}
else {/*число не делится на 5*/}
Смотрите, я попробовал и получается так, что он мне выдает последнее число в textbox. У меня должно работать так
А получается так
Вот скрипт к 2 картинке и я не могу понять почему он не хочет работать так, как надо...
foreach (Control x in panel1.Controls) { int sum = Convert.ToInt32((x as TextBox).Text); if (sum % 5 == 0) {/*число делится на 5*/} else {/*число не делится на 5*/} label3.Text = sum.ToString();
Может быть я тормоз, но я не могу в этом разобраться.
Я пытался сделать это так, но опять не вышло
int k = 0; int c = 0; int sum = Convert.ToInt32((x as TextBox).Text); if ((sum % 5 == 0) && (sum % 7 != 0)) { k++; c += sum; } else {/*число не делится на 5*/} label3.Text = sum.ToString();
31 мая 2017 г. 18:34 -
Условие нужно вставить внутрь цикла, а вывод значения - после него. Наверное, вам нужно почитать учебные материалы, если вы принципы построения программы не понимаете. А не спрашивать каждый раз на форуме.
int sum=0; int num; foreach (Control x in panel1.Controls) { if(x is TextBox) { num = Convert.ToInt32((x as TextBox).Text); if (num % 5 == 0 && num % 7 != 0) {sum+=num;} } } label3.Text = sum.ToString();
- Помечено в качестве ответа Maksim MarinovMicrosoft contingent staff, Moderator 1 июня 2017 г. 7:24
31 мая 2017 г. 18:57 -
Условие нужно вставить внутрь цикла, а вывод значения - после него. Наверное, вам нужно почитать учебные материалы, если вы принципы построения программы не понимаете. А не спрашивать каждый раз на форуме.
int sum=0; int num; foreach (Control x in panel1.Controls) { if(x is TextBox) { num = Convert.ToInt32((x as TextBox).Text); if (num % 5 == 0 && num % 7 != 0) {sum+=num;} } } label3.Text = sum.ToString();
Спасибо вам огромное! Я студент 1 курса, из-за этого многого не знаю. Но благодаря вам, есть ориентир куда нужно стремиться)))
31 мая 2017 г. 19:04