2013-06-04 43 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()它也不会工作。

这似乎是唯一可行的组合。

相关问题