在按Enter键时,TextBox控件用什么事件来指示文本更改?

时间:2009-11-16 21:55:40

标签: c# .net winforms

TextChanged为TextBox控件内的每次按键发送通知。

我应该使用KeyDown事件吗?

5 个答案:

答案 0 :(得分:8)

是的,在keydown活动中:

if (e.KeyCode == Keys.Enter)
{
   // do stuff
}

答案 1 :(得分:5)

这里要处理的更好的事件是KeyDown。 KeyDown将在用户明确键入框中时触发,或者其他组件通过向TextBox发送消息来模拟用户键入。这符合您描述的情况。

另一方面,如果您选择回复TextChanged事件,您将响应文本更改的每个场合(按用户或按代码)。这意味着如果我明确说出

,您的活动就会被提出
someBox.Text = Environment.NewLine;

答案 2 :(得分:2)

KeyPress事件适用于此:

private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
{
    if (e.KeyChar == (char)Keys.Enter)
    {
        MessageBox.Show("Enter pressed!");
    }
}

答案 3 :(得分:1)

这取决于您表单的其余部分。当你有一个接受按钮时,(几乎)任何控件中的[Enter]将触发该按钮,最好不要在文本框中单独处理它。

相反,如果您确实想要处理一个或多个文本框,请不要使用接受按钮。

答案 4 :(得分:0)