有一个包含TextBox
的自定义UserControl。显示UserControl时,如何将焦点放在文本框中?我尝试在TextBox.Focus
和UserControl.IsVisibleChanged
事件上调用TextBox.IsVisibleChanged
,但这没有用。我还能尝试什么?
似乎有些事情导致TextBox
失去焦点。我提到的方法通常有效。如何找出导致TextBox
失焦的原因?我试过听TextBox.LostFocus
事件,但它的参数不包含很多有价值的信息,我也没有在堆栈跟踪中看到以前的方法。
代码:
void TextBox1_IsVisibleChanged(object sender, DependencyPropertyChangedEventArgs e)
{
if (this.TextBox1.IsVisible)
this.TextBox1.Focus();
}
正如我之前所说,如果我在测试项目中的类似场景中使用相同的代码,它可以工作,但它在我的应用程序中不起作用(应用程序很大,我基本上修复了它中的错误,并且这一个是其中之一)。所以我认为问题不在于焦点设置不正确(正如我在打开这个问题时所想的那样),我认为问题在于其他东西会重置焦点。我想找到它的内容:Find out why textbox has lost focus。
答案 0 :(得分:0)
我不确定为什么它不会再次出现可见性变化......但是当我在TextBox1.Focus()
中IsEnabledChanged
时,它就像一个魅力。
答案 1 :(得分:-1)
当你显示UC时,使用UC作为桥梁,然后调用某个功能来聚焦TextBox
。