首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用TextBox_Validating事件验证用户输入

使用TextBox_Validating事件验证用户输入
EN

Stack Overflow用户
提问于 2014-06-19 16:52:39
回答 1查看 267关注 0票数 1

我正在尝试使用这个自定义方法来验证文本框中的用户输入。但是我发现这里缺少了一些东西,因为我现在不能移动(焦点)到表单中的下一个文本框!

代码语言:javascript
复制
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循环将处理程序添加到文本框中:

代码语言:javascript
复制
foreach(TextBox tb in this.Controls.OfType<TextBox>().Where(x => x.CausesValidation == true))
{
    tb.Validating += textBox_Validating;
}
EN

回答 1

Stack Overflow用户

发布于 2014-06-19 17:02:39

正如这里回答的那样,它的预期行为是失去焦点C# Validating input for textbox on winforms

描述

有许多方法可以验证您的TextBox。您可以在每次击键时执行此操作,也可以在以后或验证事件中执行此操作。

如果你的TextBox失去了焦点,比如点击另一个控件,那么验证事件就会被触发。如果您设置的e.Cancel = true,则TextBox不会失去焦点。

MSDN - Control.Validating事件通过使用键盘(TAB、SHIFT+TAB等)、通过调用Select或SelectNextControl方法或通过将ContainerControl.ActiveControl属性设置为当前窗体来更改焦点时,焦点事件按以下顺序发生

输入

GotFocus

离开

验证中

经过验证

LostFocus

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

输入

GotFocus

LostFocus

离开

验证中

经过验证的

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24302530

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档