我有文本框和numericupdown的问题。我从第一个textbox1(indbox)加上numericupdown1的数字中获取值,然后在另一个textbox2中显示结果。
我需要在第一个文本框中使用编号40000,但是在结果文本框中,我有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";
}
}
请帮忙!谢谢你!:)
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
40000大于Int16
最大值(32767)。您可以使用Int32
,它可以存储高达2147483647的值:
textBox3.Text = Convert.ToString(Convert.ToInt32(indBox.Text) + Convert.ToInt32(numericUpDown1.Value));