我遇到了textboxes和numericUpDown的问题。我从第一个textBox1(indBox)中取值,加上numericUpDown1中的数字,并将结果显示在另一个textBox2中。
我需要在第一个textBox中使用数字40000,但在结果textBox中,例如我有4000(三个零,而不是四个),直到我更改numericUpDown的值。只有在更改了值后,才能获得正确的数值。我在第一个文本框中使用TextChanged事件。和下一个代码:
private void indBox_TextChanged(object sender, EventArgs e) //
{
try
{
textBox3.Text = Convert.ToString( Convert.ToInt16(indBox.Text) + Convert.ToInt16(numericUpDown1.Value));
}
catch (Exception)
{
toolStripStatusLabel1.Text = "Can not calculate";
}
}
请帮忙!谢谢! :)
答案 0 :(得分:2)
Int16
的最大值为32,767
且40,000
超过最大值。
使用Int32
textBox3.Text = (int.Parse(indBox.Text) + (int)numericUpDown1.Value).ToString();
https://msdn.microsoft.com/en-us/library/system.int16.maxvalue(v=vs.110).aspx
答案 1 :(得分:0)
40000大于Int16
maximum value(32767)。您可以使用Int32
代替,2147483647可以存储最多{{3}}的值:
textBox3.Text = Convert.ToString(Convert.ToInt32(indBox.Text) + Convert.ToInt32(numericUpDown1.Value));