我有点困惑,据我记得,当用户输入所需的文本后按下 Enter 键时,文本框应该会触发 Validating 事件,但现在这种情况没有发生。
你知道这是否是预期行为吗?
谢谢。
CausesValidation
属性被设置为false,则Validating和Validated事件将被抑制。我使用了类似Javed Akram的答案的方法,但是不是调用验证函数,而是只在父元素上调用focus...
private void TextBox_KeyPress(object sender, KeyPressEventArgs e)
{
if (e.KeyChar == (char)Keys.Enter)
{
(sender as TextBox).Parent.Focus();
}
}
我记得好像没有。文本框通常只在获取/失去焦点时进行验证,除非手动触发了某些操作。
可以查看Bolu提供的链接,了解验证触发器列表。
当控件失去焦点时,将触发验证事件,因此您可以在按键事件中自行触发验证事件,在检查输入的键是否为Enter键后。
示例代码:
private void someTextBox_KeyPress(object sender, KeyPressEventArgs e)
{
if (e.KeyChar == (char)Keys.Enter)
{
someTextBox_Validating(sender, new CancelEventArgs());
}
}