我正在使用这个计算函数
private void Calculate()
{
double.TryParse(textBox1.Text, out num);
for (int a = 1; a <= 10; a++)
{
listBox1.Items.Add(a + " * " + num + "\n = " + a * num);
}
}
将Calculate()放在私有的空textBox1_TextChanged中,这样它就会自动计算
我也在使用:
private void textBox1_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Back)
{
listBox1.Items.Clear();
}
}
这是可行的,但是如果我在textBox1中退格值,那么当该框为空时,它仍然使用列表框中显示的计算中的零显示计算函数,就好像空的文本框是零一样,如果它是空的,除非我再次退格键,否则它将消失。我想知道为什么会这样,背后的逻辑是什么。所以我要说清楚
当我输入12时,calculate函数将显示12,如果我按backspace,它将显示为1,它将显示calculate函数为1,但如果我再次使用backspace使其为空,它将在列表框中将calculate函数显示为0。Here is the screenshot
感谢您的时间和帮助。
发布于 2018-06-10 04:35:28
您不需要获取TryParse的结果,无论您有(或没有) textbox中的任何内容,都可以运行calculate代码。检查TryParse的返回值是否为假,退出代码
如果TryParse不能解析输入字符串(就像在空字符串的情况下),它会将out变量设置为其默认值(0表示双精度),这样您就可以针对零乘数运行代码了。
如果用户键入非数字值(如字母),也会发生这种情况。
private void Calculate()
{
if(!double.TryParse(textBox1.Text, out num))
return;
for (int a = 1; a <= 10; a++)
{
listBox1.Items.Add(a + " * " + num + "\n = " + a * num);
}
}
https://stackoverflow.com/questions/50778274
复制相似问题