TextChanged为TextBox控件内的每次按键发送通知。
我应该使用KeyDown事件吗?
答案 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)