显示备用消息(KeyDown)

时间:2016-01-12 11:17:12

标签: c# events keydown

我正在创建一个简单的练习程序,如果我要按“Enter”,将显示的第一条消息是“输入一个单词”,然后如果我再次按“Enter”,则第二条消息将是“Hello” “。我对KeyDown事件真的很陌生,我只是一点一点地开始学习它。任何帮助表示赞赏。

这是我到目前为止尝试过的代码。但输出并不是我想要的。

private void textBox1_KeyDown(object sender, KeyEventArgs e)
    {
        if (e.KeyCode == Keys.Enter)
        {
            if (textBox1.Text == "1")
            {
                MessageBox.Show("Enter a word");


            }

            else if (textBox1.Text == "1")
            {
                MessageBox.Show("Hello");
            }
        }
    }

2 个答案:

答案 0 :(得分:1)

在第二次按Enter键之前,您确实需要保存状态。在下面的实现中,我将状态保存在boolean" State"变量,因为任务只需要有两种可能的状态。

    private bool State = false;

    private void textBox1_KeyDown(object sender, KeyEventArgs e)
    {
        if (e.KeyCode == Keys.Enter)
        {
            if (State == false)
            {
                MessageBox.Show("Enter a word");
                State = true;
            }

            else if (State == true)
            {
                MessageBox.Show("Hello");
                State = false;
            }
        }
    }

如果你有更多状态,你可以使用不同的变量,如字符串或使用私有方法,它执行一些工作来确定下一个状态。

答案 1 :(得分:0)

您的两个if条款相同(textBox1.Text == "1")。无论如何,您不应该使用TextBox来跟踪您的状态。尝试在表单源代码中创建private int time = 1;字段并进行检查。每当你发现按下“Enter”时,不要忘记将它增加1。