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中更改了值。
最初以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 declaration(C# 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();
}