【发布时间】:2014-02-20 03:06:43
【问题描述】:
我有一个这样定义的 UserControl:
UserControl
TextBox
Button (Clear)
我在UserControl 上有一个GotFocus 处理程序,因此只要它获得焦点,它就会调用TextBox.Focus()。我遇到的问题是,如果我单击清除按钮,它会清除文本,然后重新聚焦到文本框,在我的控件上触发两个 GotFocus 事件。我希望它充当:
- 一个 GotFocus 事件
- 一个 GotFocus 事件(按钮)、一个 LostFocus 事件(按钮)、一个 GotFocus 事件(文本框)
我玩过FocusManager.IsFocusScope 无济于事。有没有办法在我打电话给Textbox.Focus 之前触发手动LostFocus?
【问题讨论】:
-
尝试将 UserControl 上的 IsFocusable 设置为 false?
-
目前,我似乎已经通过将按钮标记为
Focusable=False...来解决这个问题。我不确定我是否认为这是一个很好的解决方案,因为它所做的只是让清除按钮点击根本不像改变焦点 -
是的,我就是这个意思。
Focusable = false。抱歉没有测试。