我想知道在WPF中是否有任何方式可以从当前控件切换到其他控件,并移动焦点,尤其是针对已分配TabIndex的控件。
例如,我有具有TabIndex为1到5的控件,是否有办法将焦点从1跳转到5?
<TextBox TabIndex="1" Focusable = "true" LostFocus="test_LostFocus"/>
<TextBox TabIndex="2" Focusable = "true"/>
...
<TextBox TabIndex="5" Focusable = "true" name="LastControl"/>
.
private void test_LostFocus(object sender, RoutedEventArgs e)
{
LastControl.Focus();
}
我尝试了
Keyboard.Focus()
和FocusManager.SetFocusedElement()
,但是没有成功。有任何想法吗?
Focus
方法?你是从后台线程调用它吗? - keyboardPLostFocus
事件吗?用户可能已经从文本框点击到另一个控件上了。你是否更愿意检查用户是否按下了tab
/enter
,然后只在这种情况下设置焦点? - keyboardPKeyDown
事件并自己处理它(如所示)。 - keyboardP