如何在windows窗体中将焦点强制放在控件上
本文关键字:控件 焦点 windows 窗体 | 更新日期: 2023-09-27 18:16:56
我正试图在我的windows窗体应用程序中集中一个"搜索"文本框控件。该文本框位于用户控件内,用户控件位于窗口窗体内的面板内(如果它很重要)。我试了三种方法,我能找到:
// 1
this.ActiveControl = myTextBox;
// 2
myTextBox.Focus();
// 3
myTextBox.Select();
两个似乎都不起作用。举个例子,当我尝试第一个时,活动控制被设置为myTextBox,但当我尝试在键盘上写东西时,文本框不接受它我必须首先点击文本框内部来获得焦点。所有的方法都是一样的。我错过什么了吗?
Ok,终于找到答案了:
就像我说的,我的文本框在用户控件里面,在面板里面,在表单里面。当我需要我的用户控件,我把它添加到面板。为了让我的文本框聚焦,我必须首先聚焦我的用户控件,就像这样:在我的top Form中:
panel.Controls.Add(myUserControl);
myUserControl.Focus();
然后在我的用户控件中:
myTextBox.Select();
注意,如果我使用:myTextBox.Focus(),它将无法工作(不知道为什么)。此外,如果我使用myUserControl.Select()而不是myUserControl.Focus(),它也不会工作。
您可以执行以下逻辑步骤将控件设置为焦点:
your_control.Select();
your_control.Focus();
享受吧!:)