单击Return时TextBox是否应该引发验证事件?

时间:2010-11-26 09:58:17

标签: c# winforms textbox

我有点困惑,据我所知,当用户在输入所需文本后按下Enter键时,用于启动验证事件的文本框,但现在没有发生。

您知道这是否是预期的行为?

感谢。

4 个答案:

答案 0 :(得分:2)

见:Control.Validating Event

注意:如果CausesValidation属性设置为false,则会禁止验证和验证事件。

答案 1 :(得分:2)

我使用类似于Javed Akram的答案的方法,但我没有调用Validating函数,而只是将焦点调用于父...

private void TextBox_KeyPress(object sender, KeyPressEventArgs e)
{
    if (e.KeyChar == (char)Keys.Enter)
    {
        (sender as TextBox).Parent.Focus();
    }
}

当TextBox本身失去焦点时,它将调用自己的Validating事件

答案 2 :(得分:1)

不,不记得。 TextBox通常仅在焦点被获取/丢失时进行验证,除非有人手动触发焦点。

Hvae看看Bolu的链接以获得验证触发器列表

答案 3 :(得分:-1)

当控件失去焦点时会触发验证事件,因此如果输入的密钥为 Enter 键,您可以在检查后在keyPress事件中自行触发验证事件。

示例代码:

private void someTextBox_KeyPress(object sender, KeyPressEventArgs e)
    {
        if (e.KeyChar == (char)Keys.Enter)
        {
            someTextBox_Validating(sender, new CancelEventArgs());
        }
    }