有一个自定义UserControl,它包含一个TextBox
。如何在显示UserControl时将焦点放在文本框上?我试过在UserControl.IsVisibleChanged
和TextBox.IsVisibleChanged
事件上尝试拨打TextBox.Focus
,但这并没有帮助。我还能尝试什么?当控制显示时,将焦点放在文本框上
这似乎是导致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。
UIElement.Focus()将工作,如果您尝试将其挂钩到文本框的可见性更改事件。你能分享一些可能有助于实践你的设计的代码吗? –
我已更新我的问题。 –
解决了这个问题中的问题:http://stackoverflow.com/questions/7892081/find-out-why-textbox-has-lost-focus。 –