Numericupdown值总和少1个数字

时间:2019-05-09 11:01:50

标签: c# winforms

private void numericUpDown1_ValueChanged(object sender, EventArgs e)
{
    try
    {
        textBox2.Text = Convert.ToString(Convert.ToInt32(textBox1.Text.Trim()) + Convert.ToInt32(numericUpDown1.Text.Trim()));
    }
    catch (Exception)
    { }
}

使用up down时,文本框和numericupdown框的总和始终相差1位数。使用botton /时,在numericupdown中更改了值。

Init 最初以1开头,更改后未在下面的文本框中添加任何值。

enter image description here通过numeridown进行更改时,其更改如下:

1 个答案:

答案 0 :(得分:3)

您需要使用NumericUpDown.Value属性,而不是其Text属性。
如果您验证在TextBox中输入的值,那也更好。您可以为此使用int.TryParse()

if (int.TryParse(textBox1.Text, out int inputValue)
{
    textBox2.Text = $"{inputValue + numericUpDown1.Value};
}

String interpolation$"{ }")可从C# 6.0+获得。
如果您使用的是以前的版本,请使用[int].ToString()

textBox2.Text = (inputValue + numericUpDown1.Value).ToString();

如果out variable declarationC# 7.0+)不可用,请事先声明变量:

int inputValue = 0;
if (int.TryParse(textBox1.Text, out inputValue)
{
    textBox2.Text = $"{inputValue + numericUpDown1.Value};
}

对于Visual Studio 2012/2013,C# 5.0

int inputValue = 0;
if (int.TryParse(textBox1.Text, out inputValue)
{
    textBox2.Text = (inputValue + numericUpDown1.Value).ToString();
}