Windows Форма заявки - C# Получение пользовательского ввода - PullRequest
0 голосов
/ 03 февраля 2020

Я использую C#, чтобы подать заявку Windows. У меня есть форма с 4 метками, 4 текстовыми полями и 3 кнопками. Единственное текстовое поле, в которое может быть введено что-либо внутри, - это первое поле, остальные имеют TapStop = false. Я хочу, чтобы пользователь мог вводить несколько чисел в это первое текстовое поле, и я хочу, чтобы эти числа добавлялись для получения среднего и общего числа. У меня уже есть кнопка, которую пользователь может набрать sh, как только он что-то введет. Что я пытаюсь сделать это похоже на калькулятор. Пользователь вводит 1 номер, затем другой, затем еще один, и так далее. Я хочу взять все эти числа и получить сумму, количество введенных цифр и среднее значение. У меня проблемы с подготовкой всех этих чисел к подсчету. Я создал обработчик событий для кнопки «Добавить» и объявил переменные для среднего и итогового значения. У меня проблемы с этими двумя вещами:

1 - я не уверен, как получить ввод каждый раз, когда пользователь вводит что-то.

2- Я не уверен, как преобразовать числа, которые вводит пользователь, так как по умолчанию в текстовых полях - строка.

Пытался указать c настолько, насколько мог, поскольку я не У меня нет никакого кода, кроме обработчика событий, который я сделал, и переменных, которые я объявил, потому что я не уверен, что делать дальше.

Есть предложения для этих двух вещей? Спасибо.

1 Ответ

0 голосов
/ 03 февраля 2020

1- Я не уверен, как получить ввод каждый раз, когда пользователь вводит что-то.

Если вы хотите обновить свои значения на основе ввода пользователя, не нажимая кнопку, которую вы можно использовать событие TextChanged, где его найти? просто дважды щелкните текстовое поле в конструкторе, а затем каждый раз, когда пользователь изменяет текст в этом текстовом поле, это событие будет запускаться.

private void textBox1_TextChanged(object sender, EventArgs e)
{

}

2 - я не уверен, как преобразовать числа в пользователь вводит, так как по умолчанию строка в текстовых полях.

int value = Convert.ToInt32(textBox1.Text);

РЕДАКТИРОВАТЬ

поэтому, основываясь на вашем комментарии, вот мое решение.

    //The entered values will be stored as List of integars.
    List<int> enteredValues = new List<int>();

    //The button will store each value in the List of integers.
    private void button1_Click(object sender, EventArgs e)
    {
        int value;

        if(int.TryParse(textBox1.Text,out value))
        {
            enteredValues.Add(value);
        }
        else
        {
            //Show error message here.
        }
    }

    //This button will calculate the sum of entered values.
    private void button2_Click(object sender, EventArgs e)
    {
        int totalValues = 0;
        foreach(int val in enteredValues)
        {
            totalValues += val;
        }
    }
...