使用textbox_validation事件验证用户输入

本文关键字:验证 用户 输入 事件 validation textbox 使用 | 更新日期: 2023-09-27 18:09:24

我试图在文本框中使用这个自定义方法进行用户输入验证。但我看到这里缺少的东西,现在我不能移动(焦点)到下一个文本框的形式!

private void textBox_Validating(object sender, CancelEventArgs e)
{
    TextBox currenttb = (TextBox)sender;
    if (currenttb.Text == "")
    {
        MessageBox.Show(string.Format("Empty field {0 }", currenttb.Name.Substring(3)));
        e.Cancel = false;
    }
    else
    {
        e.Cancel = true;
    }
}

在表单构造函数中使用foreach循环将处理程序添加到文本框中:

foreach(TextBox tb in this.Controls.OfType<TextBox>().Where(x => x.CausesValidation == true))
{
    tb.Validating += textBox_Validating;
}

使用textbox_validation事件验证用户输入

正如这里回答的那样,它的预期行为是失去焦点c#在winforms上验证文本框的输入:-

描述有很多方法来验证你的TextBox。你可以在每一个

如果TextBox失去焦点,valididating Event将被触发例如,单击另一个控件。如果设置e.Cancel = true,则文本框不要失去焦点。

MSDN -控制。方法更改焦点时的验证事件键盘(TAB, SHIFT+TAB等),通过调用Select或方法,或通过设置ContainerControl。将ActiveControl属性设置为当前窗体的焦点事件按以下顺序发生

输入

GotFocus

离开

验证

进行验证

LostFocus

使用鼠标或调用focus来改变焦点时方法时,焦点事件按以下顺序发生:

输入

GotFocus

LostFocus

离开

验证

进行验证