它c#-设置重点于第一个孩子控制的TabPage
题
说我有一个 Textbox
嵌套在 TabControl
.
当形式载荷,我希望把重点放在这 Textbox
(默认情况下的重点是设定为 TabControl
).
简单地呼唤 textbox1.focus()
在 Load
活动的形式不会出现工作。
我已经能够重点通过以下:
private void frmMainLoad(object sender, EventArgs e)
{
foreach (TabPage tab in this.tabControl1.TabPages)
{
this.tabControl1.SelectedTab = tab;
}
}
我的问题是:
是否有一个更优雅的方式做到这一点?
解决方案
以下是解决方案:
private void frmMainLoad(object sender, EventArgs e)
{
ActiveControl = textBox1;
}
更好的问题但是为什么...我并不完全知道什么答案之一。
编辑:我怀疑它是什么做这一事实,这两种形式,卡的容器,但我不肯定。
其他提示
试着将它放在 Form_Shown()
事件。因为它是在一个容器中,将在Form_Load或甚至形式()构造不会的工作。
尝试使用 textbox1.Select()
而不是的 textbox1.Focus()
.这帮助我的几倍。
你只需要添加的控制。选择()对你的控制对这些代码。我已经使用这种设置重点放在控制过验证,当时有错误。
private void ShowControlTab(Control ControlToShow)
{
if (!TabSelected)
{
if (ControlToShow.Parent != null)
{
if (ControlToShow.Parent.GetType() == typeof(TabPage))
{
TabPage Tab = (TabPage)ControlToShow.Parent;
if (WOTabs.TabPages.Contains(Tab))
{
WOTabs.SelectedTab = Tab;
TabSelected = true;
return;
}
}
ShowControlTab(ControlToShow.Parent);
}
}
}
我有一个用户控制在另一个用户的控制。文本框1.选择()为我工作,但文本框1.重点()没有工作。
你也可以尝试的设置表位于虚假、文本框1.重点(),表位真实的。
private void ChildForm1_Load(object sender, EventArgs e)
{
ActiveControl = txt_fname;
}
我使用这个代码,它的工作现在赢得签控制或dotnetbar supertab contrl
不隶属于 StackOverflow