有一個自定義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。 –