尝试在Visual Studio中执行三个文本框的乘法

时间:2016-04-05 13:33:49

标签: c# winforms visual-studio

我正在尝试执行三个不同值(三个不同的文本框)的乘法。代码被添加到按钮,因此当用户点击它时,它会计算所有三个值。

我有一个代码,当我调试它时,它没有显示任何错误,但是它不会计算,也不会在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);
    }

提前感谢您的帮助。

2 个答案:

答案 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();