在WinForms中,我可以处理经过验证的事件,以便在用户更改TextBox中的文本后执行一些操作。与TextChanged不同的是,验证并不是针对每个字符的更改而触发的;它只在用户完成时才会触发。
WPF中有什么东西可以用于获得相同的结果,只有在用户完成更改文本之后才会引发事件吗?
发布于 2009-09-11 14:49:11
当用户从文本框移动到任何其他控件时,LostFocus将触发。
发布于 2010-11-24 14:31:18
似乎没有原生的解决方案。LostFocus事件是个好主意。但是,当用户单击Enter时,他希望TextBox验证更改。下面是我的建议:当键输入时,使用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));
}
}发布于 2015-03-28 05:30:57
LostFocus不等同于验证。如果在一个屏幕上有多个文本框,并且每个文本框都有一些在验证中写入的逻辑,则会产生许多问题。在验证事件中,您可以很容易地控制焦点,但在LostFocus中就不那么容易了。
https://stackoverflow.com/questions/1411297
复制相似问题