我想将我的总数显示在名为“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);
}
答案 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);
}