在4个文本框中添加4个值,并在第5个文本框中显示总和

时间:2017-03-21 08:07:11

标签: c#

我想将我的总数显示在名为“txttotal”的最后一个文本框中,此代码不起作用。是否有任何语法错误?抱歉我的语法。

    private void txttotal_TextChanged(object sender, EventArgs e)
    {
       Int32 val1 = Convert.ToInt32(txtquiz.Text);
       Int32 val2 = Convert.ToInt32(txtpart.Text);
       Int32 val3 = Convert.ToInt32(txtmexam.Text);
        Int32 val4 = Convert.ToInt32(txtfexam.Text);
       Int32 val5 = val1 + val2 + val3 + val4;
       txttotal.Text = Convert.ToString(val5); 


    }

2 个答案:

答案 0 :(得分:0)

从我所看到的是,txttotal_TextChanged是您要显示总计的文本框的事件。这将是棘手的,因为你将如何触发此事件。我的建议是使用按钮来触发点击事件。如果你还想使用TextChanged事件,那么为txtquiz,txtpart,txtmexam,txtfexam创建TextChanged,这是重复的,不建议做。

答案 1 :(得分:0)

正如K D建议的那样,不要使用txttotals TextChanged事件。另外Convert.ToInt32()函数会抛出一个带有空字符串的异常,所以在从一个TextChanged函数中的所有文本框中获取值时请记住这一点(一旦你在第一个TextBox中写入,其他的在TextChanged触发时仍然是空的)。 例如,您可以先将变量设置为0,然后使用int.TryParse函数。

int val1 = 0;    
int.TryParse(txtquiz.Text, out val1);

编辑: 所以要更新一点,你可以制作一个TextChanged事件并将其分配给你的4个文本框(不是txttotal)

private void textbox_TextChanged(object sender, EventArgs e)
{
    Int32 val1, val2, val3, val4;
    Int32.TryParse(txtquiz.Text, out val1);
    Int32.TryParse(txtpart.Text, out val2);
    Int32.TryParse(txtmexam.Text, out val3);
    Int32.TryParse(txtfexam.Text, out val4);
    Int32 val5 = val1 + val2 + val3 + val4;
    txttotal.Text = Convert.ToString(val5);
}