我有一个窗口,有一个文本框和一个按钮。我想始终聚焦我的文本框,但允许用户单击按钮。我怎么做?
我尝试使用LostFocusEvent,whould检查谁拥有焦点,如果不是Button,它会将TextBox重新聚焦,但我总是得到System.StackOverflowException.
这就是我使用的:
private void TextLostFocus(object sender, RoutedEventArgs e)
{
IInputElement focusedControl = FocusManager.GetFocusedElement(this);
if (focusedControl != btn && focusedControl != txt)
{
txt.Focus();
}
}
字符串
有没有办法做到这一点?
4条答案
按热度按时间vaj7vani1#
当TextBox丢失时,您需要将Focus设置为TextBox。您可以通过首先在TextBox上的LostFocus事件中添加EventBox来完成此操作:
字符串
每次文本框失去焦点时,这将触发textBox_LostFocus。在那里,您可以再次将焦点设置回TextBox。
型
这也将允许按钮仍然被按下/使用,我已经用一个表测试了它,在这个表中,你可以选择一行,当TextBox再次获得焦点时,它不会被取消选择。
e4eetjau2#
在按钮单击事件中,您可以像这样将焦点给予回文本框。
字符串
0kjbasz63#
字符串
Focus是一个用于自定义控件的低级方法,我会坚持使用select()或activate()
bkhjykvo4#
你可以使用ActiveControl属性来设置文本框的焦点。
字符串