WPF 在TextBox失去焦点时检测数据,出错重新获得焦点解决办法
2011-08-28 19:29
459 查看
WPF 在TextBox失去焦点时检测数据,出错重新获得焦点解决办法
在WPF的TextBox的LostFocus事件中直接使用Focus()方法会出现死循环的问题
正确的使用方式有2中方法:
方法一:
方法二,使用LostKeyboardFocus方法:
说明:在msdn上就查找到:
LostKeyboardFocus
在键盘焦点不再位于此元素上时发生
LostFocus
在此元素失去逻辑焦点时发生
IsFocused
获取一个值,该值确定此元素是否具有逻辑焦点
Focus
尝试将焦点设定到此元素上
如果键盘焦点和逻辑焦点同时设定到此元素上,则为
true;如果只有逻辑焦点设定到此元素上或此方法调用未强制更改焦点,则为
false
补充说明:
在WPF的TextBox的LostFocus事件中直接使用Focus()方法会出现死循环的问题
正确的使用方式有2中方法:
方法一:
private void textBox3_LostFocus(object sender, RoutedEventArgs e) { if (textBox3.Text != "abc") { this.Dispatcher.BeginInvoke(System.Windows.Threading.DispatcherPriority.Render, new Action(() => { textBox3.Focus(); })); } }
方法二,使用LostKeyboardFocus方法:
private void textBox3_LostKeyboardFocus(object sender, KeyboardFocusChangedEventArgs e) { if (textBox3.Text != "abc") { textBox3.Focus(); } }
说明:在msdn上就查找到:
LostKeyboardFocus
在键盘焦点不再位于此元素上时发生
LostFocus
在此元素失去逻辑焦点时发生
IsFocused
获取一个值,该值确定此元素是否具有逻辑焦点
Focus
尝试将焦点设定到此元素上
如果键盘焦点和逻辑焦点同时设定到此元素上,则为
true;如果只有逻辑焦点设定到此元素上或此方法调用未强制更改焦点,则为
false
补充说明:
相关文章推荐
- WPF 在TextBox失去焦点时检测数据,出错重新获得焦点解决办法
- WPF 在TextBox失去焦点时检测数据,出错重新获得焦点解决办法
- Silverlight Textbox在失去焦点之前无法获取到Text值的解决办法
- WORD程序失去焦点再获得焦点后无法使用鼠标功能的解决办法(已解决)
- [导入]关于DATAGRID数据更改时点2次/行号跟不准/失去焦点/丢失e等一系列问题的解决办法:
- 数据备份中可能出错的情况及解决办法
- 双系统XP和Ubuntu: 重新安装XP后GRUB出错进不了Ubuntu的解决办法
- 用DirectSound在窗口中播放声音,可当窗口失去焦点后却不播放的解决办法
- 在magento上使用fvalidate出现的input在页面加载完后获得焦点的解决办法
- 通过自定义属性存储数据实现输入框获得焦点与失去焦点改变value值
- 文本框失去焦点后重新获得
- 用DirectSound在窗口中播放声音,可当窗口失去焦点后却不播放的解决办法
- 关于ListView中含有CheckBox,Button等控件失去焦点的解决办法
- SOAP 传回的XML数据正确,但是用MarkUp读取出错的解决办法
- Settings-解决BUG数据流量点击2次会滑动失去焦点
- 数据备份中容易出错的情况及解决办法
- 控件进行Animation动画后失去焦点的几个解决办法
- WPF中textbox强制失去焦点
- IronPython+WPF 修改ListView 中的CheckBox和TextBox等控件的使得数据实时更新的办法
- 在ListView里添加viewPager为header时,viewPager滑动失去焦点的解决办法