我正在尝试执行三个不同值(三个不同的文本框)的乘法。代码被添加到按钮,因此当用户点击它时,它会计算所有三个值。
我有一个代码,当我调试它时,它没有显示任何错误,但是它不会计算,也不会在textbox'total'中显示结果。
以下是代码:
private void button1_Click(object sender, EventArgs e)
{
Int32 val1 = Convert.ToInt32(amount.Text);
Int32 val2 = Convert.ToInt32(length.Text);
Int32 val3 = Convert.ToInt32(width.Text);
Int32 val4 = val1 * val2 * val3;
total.Text = Convert.ToString(val4);
}
提前感谢您的帮助。
答案 0 :(得分:4)
您需要将TextBox控件中的字符串值实际解析为整数,以便您可以使用它们执行必要的操作。
通常最安全的方法是使用Int32.TryParse()
方法,该方法将返回一个布尔值,指示解析是否成功,并将新解析的值存储在指定的变量中:
private void button1_Click(object sender, EventArgs e)
{
// Define your variables
int amount, length, width;
if(!Int32.TryParse(amount.Text, out amount))
{
// Amount was not an integer, do something here
}
if(!Int32.TryParse(length.Text, out length))
{
// Length was not an integer, do something here
}
if(!Int32.TryParse(width.Text, out width))
{
// Width was not an integer, do something here
}
// At this point, you can calculate your result
total.Text = Convert.ToString(length * width * amount);
}
答案 1 :(得分:1)
不需要使用Int32类,使用int因为它更容易阅读和更标准化。
这也可能有助于算术,这应该是这样的
int val1 = int.Parse(amount.Text);
int val2 = int.Parse(length.Text);
int val3 = int.Parse(width.Text);
int val4 = val1 * val2 * val3;
total.Text = val4.ToString();
这假设textBoxes可能只输入数字,如果不是这样,那么你可以改用TryParse
。
int val1 = 0;
int val2 = 0;
int val3 = 0;
int val1 = if(!int.TryParse(amount.Text, out val1)) return; // could show MessageBox
int val2 = if(!int.TryParse(length.Text, out val2)) return; // could show MessageBox
int val3 = if(!int.TryParse(width.Text, out val3)) return; // could show MessageBox
int val4 = val1 * val2 * val3;
total.Text = val4.ToString();