2011-10-25 40 views
0

有一个自定义UserControl,它包含一个TextBox。如何在显示UserControl时将焦点放在文本框上?我试过在UserControl.IsVisibleChangedTextBox.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

+0

UIElement.Focus()将工作,如果您尝试将其挂钩到文本框的可见性更改事件。你能分享一些可能有助于实践你的设计的代码吗? –

+0

我已更新我的问题。 –

+0

解决了这个问题中的问题:http://stackoverflow.com/questions/7892081/find-out-why-textbox-has-lost-focus。 –

回答

-1

使用UC作为桥梁,当您让UC显示时,然后调用某个函数以集中TextBox

+0

我已经试过了,我写了关于它的问题。 –

0

我不完全确定为什么它不会回来,因为知名度改变了......但是当我做了TextBox1.Focus()IsEnabledChanged它像一个魅力。

相关问题