2013-06-04 36 views
9

我想在我的Windows窗體應用程序中集中「搜索」文本框控件。該文本框位於用戶控件中,該用戶控件位於窗體內部的面板內(如果它很重要)。 我試過3種方法,我可以找到:如何強制在Windows窗體中的控件集中

// 1 
this.ActiveControl = myTextBox; 

// 2 
myTextBox.Focus(); 

// 3 
myTextBox.Select(); 

的他們似乎工作都不是。我的意思是,例如,當我嘗試第一個時,主動控制真的被設置爲myTextBox,但是當我嘗試在鍵盤上寫東西時,文本框不接受它,我必須先點擊文本框內部才能獲得焦點。這與所有方法相同。 我錯過了什麼嗎?

回答

16

好了,終於找到了答案:

正如我說我的文本是它是內部面板是一個表單內的用戶控件內。 當我需要我的用戶控件時,我將它添加到面板。在我的文本框獲得焦點我必須首先關注我的用戶控制,這樣的事情: 在我的巔峯狀態:

panel.Controls.Add(myUserControl); 
myUserControl.Focus(); 

,然後在我的用戶控制:

myTextBox.Select(); 

需要注意的是,如果我使用:myTextBox.Focus()它不會工作(不知道爲什麼)。此外,如果我使用myUserControl.Select()而不是myUserControl.Focus()它也不會工作。

這似乎是唯一可行的組合。

相關問題