代码之家  ›  专栏  ›  技术社区  ›  Ryan Lundy

相当于winforms文本框。正在验证wpf中的事件

  •  4
  • Ryan Lundy  · 技术社区  · 16 年前

    在WinForms中,我可以在用户更改文本框中的文本后处理已验证事件以执行某些操作。与textChanged不同的是,validated并不是为每个字符更改触发的;它只在用户完成后触发。

    wpf中是否有可用于获取相同结果的内容,只有在用户 完成 更改文本?

    4 回复  |  直到 10 年前
        1
  •  3
  •   Martin Harris    16 年前

    LostFocus 当用户从文本框移动到任何其他控件时将激发。

        2
  •  2
  •   Nicolas    14 年前

    似乎没有本地解决方案。 LostFocus事件是个好主意。但是当用户单击Enter时,他希望文本框验证更改。 所以我的建议是:在输入键时使用LostFocus事件和KeyDown事件。

    private void TextBox_LostFocus(object sender, RoutedEventArgs e)
    {
        // code to lauch after validation
    }
    
    private void TextBox_KeyDown(object sender, KeyEventArgs e)
    {
        if (e.Key == Key.Enter)
        {
            // call the LostFocus event to validate the TextBox
            ((TextBox)sender).RaiseEvent(new RoutedEventArgs(TextBox.LostFocusEvent));
        }
    }
    
        3
  •  2
  •   MadanD    10 年前

    LostFocus不等于Validate。当您在一个屏幕上有多个文本框,并且每个文本框都有一些用validate编写的逻辑时,就会产生很多问题。在validate事件中,您可以轻松地控制焦点,但在lostfocus中则不那么容易。

        4
  •  0
  •   Signcodeindie    16 年前

    您还可以尝试binding.validationrules

    记录在: http://msdn.microsoft.com/en-us/library/system.windows.data.binding.validationrules.aspx

    下面是要开始的文章:

    如何实现绑定验证:

    http://msdn.microsoft.com/en-us/library/ms753962.aspx