Cal*_*ers 107 .net c# textbox focus winforms
我需要从几个TextBox中删除焦点.我试过用:
textBox1.Focused = false;
Run Code Online (Sandbox Code Playgroud)
它的ReadOnly属性值是true.
然后我尝试将焦点设置在表单上,以便从所有TextBox中删除它,但这也无法工作:
this.Focus();
Run Code Online (Sandbox Code Playgroud)
并且在false选择文本框时返回该函数.
那么,如何从TextBox中删除焦点?
Hen*_*man 108
您需要一些其他可聚焦控制来将焦点移动到.
请注意,您可以将焦点设置为标签.您可能想要考虑[Tab]键的下一步.
另请注意,您无法将其设置为表单.像Form和Panel这样的容器控件会将Focus传递给他们的第一个子控件.这可能是你希望它远离的TextBox.
Why*_*ous 59
专注于标签对我来说不起作用,做label1.Focus()正确的事情?加载表单时文本框仍然具有焦点,但是尝试Velociraptors
回答,为我工作,将Form的Active控件设置为标签,如下所示:
private void Form1_Load(object sender, EventArgs e)
{
this.ActiveControl = label1;
}
Run Code Online (Sandbox Code Playgroud)
小智 44
您可以添加以下代码:
this.ActiveControl = null; //this = form
Run Code Online (Sandbox Code Playgroud)
Spe*_*ort 31
尝试禁用和启用文本框.
小智 22
You can also set the forms activecontrol property to null like
ActiveControl = null;
Run Code Online (Sandbox Code Playgroud)
Focus设置输入焦点,因此将其设置为表单将不起作用,因为表单不接受输入.尝试将表单的ActiveControl属性设置为其他控件.您还可以使用Select选择特定控件或SelectNextControl在Tab键顺序中选择下一个控件.
小智 8
试试这个:
首先设置Tab键顺序.
然后在表单加载事件中,我们可以通过编程方式向应用程序发送Tab键.因此,该应用程序将在Tab键顺序中将焦点放在第一个控制器上.
在表单加载甚至写这一行.
SendKeys.Send("{TAB}");
Run Code Online (Sandbox Code Playgroud)
这确实对我有用.