2011-10-25 43 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它像一個魅力。

相關問題