1

Тема: Цикл в WindowsForm

Доброго вечора
зявилась необхідність зробити программу розрахунку
Скрін додаю.
Задача наступна: в текстбокс1 вводим число "а" і в іншому текстбоксі2 повинно виводитись сум= сум + а.
Але як вже не пробував - результату немає. Тобто необхідно при виборі в комбобоксі Майк - , щоб сума чисел в текстбоксі2 залишалась після дій, і коли вводиш нове число в текстбокс1 воно додавалось до попередньої суми
https://replace.org.ua/uploads/images/10723/770f97bd02cb645cc87791f3436d0cae.jpg

2 Востаннє редагувалося koala (03.12.2020 16:03:49)

Re: Цикл в WindowsForm

Понова: коментар нерелевантний, питання про іншу мову.

switch не працює зі стрічками. Порівнюйте звичайними функціями.

Подякували: Ossa, Mister.C2

3

Re: Цикл в WindowsForm

По-можливості, уточніть
Я не впевнений, що правильно пояснив що потрібно
Необхідно, щоб значення в текстбоксі залишалось після операціїї, і наступні дані добавлялись у визначену сумму

4

Re: Цикл в WindowsForm

Чекайте. У вас же C#. А питаєте ви в розділі про C/C++. У шарпів, здається, таки працює, але хай там відповідають, хто знає. Переношу тему.

Подякували: Mister.C1

5 Востаннє редагувалося Betterthanyou (02.12.2020 20:53:33)

Re: Цикл в WindowsForm

1) switch в с# працює з рядками

2)
Ви до пустого b (b=0) додаєте а
Вам потрібно текстбоксі2 присвоїти для змінної b

b = текстбокс2;
а = текстбокс1;

текстбокс2 = b+а;

3) Замініть comboBox1.Text на comboBox1.SelectedIndex, а в кейси додайте індекси

case 0: /* Ваш код */

Або

comboBox1.SelectedItem.ToString().Trim() для порівняння з рядками

4)
Що означає "результату немає" ?
Виводить 0 ?

Подякували: koala, Mister.C, Ossa3

6 Востаннє редагувалося koala (03.12.2020 16:02:45)

Re: Цикл в WindowsForm

switch (comboBox1.Text)
            {
                case "test":
                    double a;
                    double sum;
                    double m = 6;
                    a = Convert.ToDouble(textBox1.Text);
                    sum = Convert.ToDouble(textBox2.Text);
                    textBox2.Text = Convert.ToString(sum+a);
                    textBox5.Text = Convert.ToString(m- (sum + a));
                    break;
            }

З таким кодом вийшло, але необхідно в текстбокс перед натиском на кнопку вставляти 0, бо видає помилку.

Якщо є під рукою варіанти як прописати цикл з кроком в натиск кнопки, скиньте будь-ласка
Або ресурс де можна знайти

7 Востаннє редагувалося koala (03.12.2020 16:03:08)

Re: Цикл в WindowsForm

Ossa написав:

необхідно в текстбокс перед натиском на кнопку вставляти 0, бо видає помилку.

Спробуйте Double.TryParse:

if (!Double.TryParse(textBox1.Text, a))
   a = 0.0;

І взагалі дуже раджу навчитися гуглити. Дуже допомагає.

Ossa написав:

цикл з кроком в натиск кнопки

Це безглуздо. Код - це те, що робить процесор. Натискання - це те, що робить користувач. Процесор не керує користувачем, лише обробляє результати його дій. Спробуйте переформулювати, що саме вам треба.

P.S. додав вам тег code (кнопка <>). Наступного разу самі.

8

Re: Цикл в WindowsForm

koala написав:

І взагалі дуже раджу навчитися гуглити. Дуже допомагає.



P.S. додав вам тег code (кнопка <>). Наступного разу самі.


Дуже Вам вдячний!
Завдання наступне - при вводі в текст бокс число(тобто номер) то після кнопки ДІЇ він повинен додатись в масив, і цей масив постійно оновлено виводитись в іншому тексбоксі.

Насправді, я вирішив поставити на паузу написання програми, бо знань і вмінь не вистачає, і прийдеться постійно питати, тому прислухаюсь до Вас. Розберусь з основами, і спробую ще раз.

А взагалі - навіть на моєму 0 рівні, я розумію що программа не важка, але для ЗС України, буде дуже корисна. Тому якщо є трохи вільного часу, будемо Вам дуже вдячні! Контакти залишу при їх необхідності

9

Re: Цикл в WindowsForm

Ну ви ж самі написали:

Ossa написав:

після кнопки ДІЇ він повинен додатись в масив, і цей масив постійно оновлено виводитись в іншому тексбоксі.

Після кнопки - значить, вам потрібна подія (тобто функція-обробник події) натискання на кнопку. На кшталт button2_Click (тільки перейменуйте і кнопку, і функцію, щоб розуміти, що саме відбувається - якщо це кнопка ДІЯ, то, мабуть, назвати її варто Action чи BtnAction).
У цій функції вам треба додати значення в масив і оновити його в іншому текстбоксі - саме так, як ви написали.

10 Востаннє редагувалося Ossa (05.12.2020 13:40:10)

Re: Цикл в WindowsForm

https://replace.org.ua/uploads/images/10723/32f12580e5d3da70dd8527c0e87a6979.jpg

     private void button1_Click(object sender, EventArgs e)
        {

            int activ()
            {
                return 1;
            }
            int[] nums1 = new int[4];
            int one = 0;
            one = +activ();
            nums1[one] = Convert.ToInt32(textBox4.Text);
            textBox3.Text += Convert.ToString(nums1[one]);

Зробив ось так, але розумію - що нічого хорошого. В загальному задача виконана - тобто в стрічку виводиться номер з текстбокса, залишається попередній. Тобто вивід є. Але масив - тут зовсім не задіюється. Не розумію, яким чином мені зробити, щоб з кожним натиском "one" збільшувався на один.
І знов - якщо в программі не ввести номер в текст бокс, то код видає помилку.

11

Re: Цикл в WindowsForm

Відписав в приват

Подякували: Ossa1

12

Re: Цикл в WindowsForm

+ бачу
дякую

13

Re: Цикл в WindowsForm

Я так розумію, вам просто треба замість масиву використовувати List - це в C#, якщо я правильно розумію, обгортка над масивом із методами на кшталт Add, Insert, Find, ну і індексами.