说我有一个 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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top