C# 即使输入键为';没按
目前,我有:C# 即使输入键为';没按,c#,C#,目前,我有: if ((input.Text.ToUpper() == "FURNACE" || input.Text.ToUpper() == "COAL") && count == 3) { end3(); } else { MessageBox.Show("Unknow
if ((input.Text.ToUpper() == "FURNACE" || input.Text.ToUpper() == "COAL") && count == 3)
{
end3();
}
else
{
MessageBox.Show("Unknown key");
}
然而,无论我进入炉子、煤或其他任何东西,它仍然会弹出“未知键”。为什么?
它在一个键控事件下,如下所示:
private void input_KeyUp(object sender, KeyEventArgs e)
{
if (e.KeyData == Keys.Enter)
{
//The earlier code I showed goes here
}
}
计数不同,其中一个if(input.Text.ToUpper…)向计数中添加一个,但它从零开始
输入是一个文本框。我认为您缺少
e.SuppressKeyPress=true在输入if
后立即输入code>,因此当按enter键时,它不会在文本中显示为字符
private void input_KeyUp(object sender, KeyEventArgs e)
{
if (e.KeyData == Keys.Enter)
{
e.SuppressKeyPress = true;
if ((input.Text.ToUpper() == "FURNACE" || input.Text.ToUpper() == "COAL") && count == 3)
{
end3();
}
else
{
MessageBox.Show("Unknown key");
}
}
}
输入的类型是什么?例如,它是一个文本框?它(计数)不同,其中一个if(input.Text.ToUpper…)将一添加到计数中,但它从零开始。是的,它是一个文本框。我把你的两个问题都添加到了答案中,这可能会对其他人有所帮助。“无论我进入熔炉、煤炭或其他任何东西,它仍然会弹出未知键”
。这一定意味着计数不等于3。在if语句上放置一个断点,并在locals窗口中查看count的值。它确实比预期的要高一个,但如何使它不触发else呢?没办法,我得在第一个if之后加一个。还有,会有很多if,所以输入if(input.Text!=“whatever”)是行不通的。我编辑了答案。如果这不起作用,请按相同的操作,但按向下键。我通常做这件事的关键是完成,而不是关键了。