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=trueif
后立即输入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”)是行不通的。我编辑了答案。如果这不起作用,请按相同的操作,但按向下键。我通常做这件事的关键是完成,而不是关键了。