如何从单击另一个文本框时验证失败的文本框释放焦点

JD0001

这是我的场景。我正在使用验证事件。如果我引入了错误的值(因为我的验证事件的逻辑确定它是错误的),它不会在 Tab 键时从该 TextBox 中解放焦点,但是,这是否意味着当我单击时它也不会这样做另一个文本框?

图像聚焦问题

我是否缺少有关验证的信息?我是否应该使用另一种方式来强制数据验证,如果我想要焦点上的自由,或者我可以实现一个释放它的点击事件?

这是我使用的验证事件,例如,名称(“Nombre”):

private void tbNombre_Validating(object sender, CancelEventArgs e)
    {

        if (!new Validator().ValidateWithRegex("^[a-zA-ZÁáÀàÉéÈèÍíÌìÓóÒòÚúÙùÑñüÜ ]{2,20}$", tbNombre.Text))
        {
            e.Cancel = true;

            MessageBox.Show(
                "El nombre debe estar formado por letras (longitud: 2 a 20 caracteres)", 
                "Error en nombre",
            MessageBoxButtons.OK, MessageBoxIcon.Error);
            tbNombre.Text = "";
        }
        else
        {
            _emp.Nombre = tbNombre.Text;
        }
    }
sab669

Validating 事件处理程序的本质是操纵哪个控件具有焦点,而且在此事件中设置焦点是一个坏主意。

MSDN上的Validating事件:

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

进入、GotFocus、离开、验证、验证、LostFocus


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

进入、GotFocus、LostFocus、离开、验证、验证


不要尝试在 Enter、GotFocus、Leave、LostFocus、Validating 或 Validated 事件处理程序中设置焦点这样做可能会导致您的应用程序或操作系统停止响应。

所以 GotFocus / Leave / LostFocus 事件都被触发并在这个Validating事件中被操纵,因此在这里尝试自己处理焦点是一个坏主意。

如果您想要自由地验证您的字段并仍然允许更改焦点,您应该将您的代码移动到Leave事件中。在这里,您仍然可以验证文本框的值,同时仍然允许其他控件获得焦点。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

制作空文本框并将焦点放在另一个文本框上

来自分类Dev

当我关闭另一个窗体时如何在文本框中设置焦点?

来自分类Dev

如何使用 jQuery 将焦点从一个文本框更改为另一个文本框?

来自分类Dev

验证文本框,以使该值不同于另一个文本框

来自分类Dev

根据另一个文本框MVC 4填充文本框

来自分类Dev

禁用文本框,取决于另一个文本框的值

来自分类Dev

在另一个文本框中输入数据时文本框完成

来自分类Dev

合并来自文本框的输入以自动填充另一个文本框

来自分类Dev

javascript-添加另一个文本框时,动态创建的文本框的值消失

来自分类Dev

当另一个文本框处于活动状态时清除文本框 (JavaScript)

来自分类Dev

文本框的onchange文本显示在另一个文本框上

来自分类Dev

MS Word 2013:如何更改哪个文本框位于另一个文本框的顶部?

来自分类Dev

如何在另一个文本框中同时写入文本框值?

来自分类Dev

如何对另一个文本框中的数组文本框的所有输出求和

来自分类Dev

如何根据另一个文本框的值自动设置文本框的值

来自分类Dev

如何根据另一个文本框值在jdeveleper的表中设置文本框只读?

来自分类Dev

用户在文本框中插入值后如何显示另一个文本框?

来自分类Dev

C#如何在每次点击时使用文本框减去并显示在另一个文本框中

来自分类Dev

如何从另一个线程的静态方法更改文本框的文本?

来自分类Dev

如何在另一个窗口中读取文本框的文本

来自分类Dev

根据在另一个文本框中输入的文本在文本框中显示文本

来自分类Dev

如何在VB中将文本从一个文本框保存/追加到同一窗体上的另一个文本框

来自分类Dev

如何在VB中将文本从一个文本框保存/追加到同一窗体上的另一个文本框

来自分类Dev

如何将文本从一个Web窗体文本框中移动到另一个Web窗体文本框中

来自分类Dev

C#-如何将焦点从一个文本框转移到另一个?

来自分类Dev

如何基于值和另一个的textchanged计算文本框值

来自分类Dev

如何从另一个页面获取文本框或下拉列表的值?

来自分类Dev

如何在动态生成的 html 表中将数据从一个文本框获取到另一个文本框?

来自分类Dev

在另一个文本框中的选定文本之前添加文本

Related 相关文章

  1. 1

    制作空文本框并将焦点放在另一个文本框上

  2. 2

    当我关闭另一个窗体时如何在文本框中设置焦点?

  3. 3

    如何使用 jQuery 将焦点从一个文本框更改为另一个文本框?

  4. 4

    验证文本框,以使该值不同于另一个文本框

  5. 5

    根据另一个文本框MVC 4填充文本框

  6. 6

    禁用文本框,取决于另一个文本框的值

  7. 7

    在另一个文本框中输入数据时文本框完成

  8. 8

    合并来自文本框的输入以自动填充另一个文本框

  9. 9

    javascript-添加另一个文本框时,动态创建的文本框的值消失

  10. 10

    当另一个文本框处于活动状态时清除文本框 (JavaScript)

  11. 11

    文本框的onchange文本显示在另一个文本框上

  12. 12

    MS Word 2013:如何更改哪个文本框位于另一个文本框的顶部?

  13. 13

    如何在另一个文本框中同时写入文本框值?

  14. 14

    如何对另一个文本框中的数组文本框的所有输出求和

  15. 15

    如何根据另一个文本框的值自动设置文本框的值

  16. 16

    如何根据另一个文本框值在jdeveleper的表中设置文本框只读?

  17. 17

    用户在文本框中插入值后如何显示另一个文本框?

  18. 18

    C#如何在每次点击时使用文本框减去并显示在另一个文本框中

  19. 19

    如何从另一个线程的静态方法更改文本框的文本?

  20. 20

    如何在另一个窗口中读取文本框的文本

  21. 21

    根据在另一个文本框中输入的文本在文本框中显示文本

  22. 22

    如何在VB中将文本从一个文本框保存/追加到同一窗体上的另一个文本框

  23. 23

    如何在VB中将文本从一个文本框保存/追加到同一窗体上的另一个文本框

  24. 24

    如何将文本从一个Web窗体文本框中移动到另一个Web窗体文本框中

  25. 25

    C#-如何将焦点从一个文本框转移到另一个?

  26. 26

    如何基于值和另一个的textchanged计算文本框值

  27. 27

    如何从另一个页面获取文本框或下拉列表的值?

  28. 28

    如何在动态生成的 html 表中将数据从一个文本框获取到另一个文本框?

  29. 29

    在另一个文本框中的选定文本之前添加文本

热门标签

归档