wpf TextBox始终聚焦

ykejflvf  于 2023-11-21  发布在  其他
关注(0)|答案(4)|浏览(236)

我有一个窗口,有一个文本框和一个按钮。我想始终聚焦我的文本框,但允许用户单击按钮。我怎么做?
我尝试使用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();
      }
    }

字符串
有没有办法做到这一点?

vaj7vani

vaj7vani1#

当TextBox丢失时,您需要将Focus设置为TextBox。您可以通过首先在TextBox上的LostFocus事件中添加EventBox来完成此操作:

this.textBox.LostFocus += new System.EventHandler(textBox_LostFocus);

字符串
每次文本框失去焦点时,这将触发textBox_LostFocus。在那里,您可以再次将焦点设置回TextBox。

private void textBox_LostFocus(object sender, EventArgs e)
{
  ((TextBox)sender).Focus();
}


这也将允许按钮仍然被按下/使用,我已经用一个表测试了它,在这个表中,你可以选择一行,当TextBox再次获得焦点时,它不会被取消选择。

e4eetjau

e4eetjau2#

在按钮单击事件中,您可以像这样将焦点给予回文本框。

textbox.focus();

字符串

0kjbasz6

0kjbasz63#

Textbox.Select();

字符串
Focus是一个用于自定义控件的低级方法,我会坚持使用select()或activate()

bkhjykvo

bkhjykvo4#

你可以使用ActiveControl属性来设置文本框的焦点。

this.ActiveControl = yourTextboxName;

字符串

相关问题