显示备用消息 (KeyDown)
Display Alternate Message (KeyDown)
我正在创建一个简单的练习程序,如果我要按 "Enter",将显示的第一条消息是 "Enter a word",然后如果我再次按 "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");
}
}
}
您的两个 if
子句相同 (textBox1.Text == "1"
)。无论如何,您不应该使用 TextBox 来跟踪您的状态。尝试在您的表单源代码中创建一个 private int time = 1;
字段并检查它。每次发现按下 "Enter".
时,不要忘记将其增加 1
您确实需要在第二次按 Enter 键之前保存您的状态。在下面的实现中,我将状态保存在布尔 "State" 变量中,因为任务只需要有 2 种可能的状态。
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;
}
}
}
如果您有更多状态,您可以使用不同的变量(如字符串)或使用执行一些工作以确定下一个状态的私有方法。
我正在创建一个简单的练习程序,如果我要按 "Enter",将显示的第一条消息是 "Enter a word",然后如果我再次按 "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");
}
}
}
您的两个 if
子句相同 (textBox1.Text == "1"
)。无论如何,您不应该使用 TextBox 来跟踪您的状态。尝试在您的表单源代码中创建一个 private int time = 1;
字段并检查它。每次发现按下 "Enter".
您确实需要在第二次按 Enter 键之前保存您的状态。在下面的实现中,我将状态保存在布尔 "State" 变量中,因为任务只需要有 2 种可能的状态。
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;
}
}
}
如果您有更多状态,您可以使用不同的变量(如字符串)或使用执行一些工作以确定下一个状态的私有方法。