Jim*_*Del 3 c# tabcontrol focus
我想在选择了Tab之后将焦点放在textBox上,但无论我尝试什么它都不起作用.我在这里看过类似的问题,但他们没有得到我需要的结果.这是我尝试过的.
private void tabBDERip_Click(object sender, EventArgs e)
{
textBoxPassword.Focus();
}
Run Code Online (Sandbox Code Playgroud)
和
private void tabAll_SelectedIndexChanged(object sender, EventArgs e)
{
if (tabAll.SelectedTab == tabBDERip)
{
textBoxPassword.Focus();
}
}
Run Code Online (Sandbox Code Playgroud)
有人可以告诉我我做错了什么吗?
谢谢
第一件事Click的事件TabPage,当用户点击控件激发内部的TabPage不是标题让你的SelectedIndexChanged事件是,你要使用的一个.
我刚测试的代码非常类似于你的代码:
private void tabControl1_SelectedIndexChanged(object sender, EventArgs e)
{
if (tabControl1.SelectedTab == tabPage2)
{
textBox4.Focus();
}
}
Run Code Online (Sandbox Code Playgroud)
它工作得很好.
密码文本框未启用或类似的东西?
如果你尝试调用Focus()不同的控件那么这也行不通?
如果在SelectedIndexChanged代码中设置断点,它会被命中吗?
更新:有趣.如果断点没有被击中(在之前if),我会仔细检查你的事件处理程序是否正确连接.在您的designer.cs中查找类似的内容:
this.tabControl1.SelectedIndexChanged += new System.EventHandler(this.tabControl1_SelectedIndexChanged);
Run Code Online (Sandbox Code Playgroud)
更新:我把我的工作示例放在http://www.ccswe.com/temp/SO_TextBoxFocus.zip上,也许看看它会帮助你找出问题所在.
更新:将事件处理程序附加到窗体上的控件的更简单方法:
1:选择Control要附加事件处理程序,然后单击窗口中的Events图标(闪电)Properties.
替代文字http://www.ccswe.com/temp/Attach_EventHandler_1.png
2:找到要附加的事件,然后双击右侧.
替代文字http://www.ccswe.com/temp/Attach_EventHandler_2.png
3:将自动为您生成代码存根,并将事件附加到设计器中.
替代文字http://www.ccswe.com/temp/Attach_EventHandler_3.png
如果再次查看属性窗口,您现在将看到生成的方法的名称.