Получите сумму значений, которая регулярно обновляется в 2 текстовых полях C# - PullRequest
0 голосов
/ 30 мая 2020

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

Код:

value 1 and 2 are type string
textbox1.text = value1;
textbox2.text = value2;

double value3 = convert.ToDouble(value1) + convert.ToDouble(value2);
textbox3.text = value3.ToString();

Текстовое поле вывода1:

100, after sometime updates to 200, then 300

Текстовое поле вывода2:

50, after sometime updates to 100, then 150

То, что я получаю, вывод в текстовом поле3:

150, after some time updates to 300, then 450

Я должен получить

100+200+300+50+100+150

Ответы [ 3 ]

1 голос
/ 30 мая 2020

решил мою собственную проблему, плохой пост здесь на случай, если кто-то другой может оказаться в том же положении

used two lists got the sums and added the sums
List<double> totalvalueList = new List<double>();
totalvalueList.Add(Convert.ToDouble(value1));
            double totalval = totalvalueList.Sum();
0 голосов
/ 30 мая 2020

Надеюсь, это сработает для вас

1) Объявите ниже на уровне класса:

List<double> txbxList1 = new List<double>();
List<double> txbxList2 = new List<double>();

2) Используйте приведенный ниже код с TextChanged событие для textbox1 и textbox2

    private void textBox1_TextChanged(object sender, EventArgs e)
    {
        txbxList1.Add(double.Parse(textBox1.Text));
        textBox3.Text = sumList().ToString();
    }

    private void textBox2_TextChanged(object sender, EventArgs e)
    {
        txbxList2.Add(double.Parse(textBox2.Text));
        textBox3.Text = sumList().ToString();
    }

    private double sumList()
    {
        double sum = 0;

        foreach(double d in txbxList1)
        {
            sum += d;
        }

        foreach (double d in txbxList2)
        {
            sum += d;
        }

        return sum;
    }
0 голосов
/ 30 мая 2020

Когда вы получаете ввод из текстового поля в C#, вы получаете строковые данные в качестве ввода. Для целочисленных операций вам необходимо преобразовать введенную вами строку из текста с помощью метода Parse.

Попробуйте

Int16.Parse()
Int32.Parse()
Int64.Parse()
...