当前位置:  开发笔记 > 编程语言 > 正文

Winforms c# - 将焦点设置为TabPage的第一个子控件

如何解决《Winformsc#-将焦点设置为TabPage的第一个子控件》经验,为你挑选了2个好方法。

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

我的问题是:

有没有更优雅的方式来做到这一点?



1> samjudson..:

以下是解决方案:

private void frmMainLoad(object sender, EventArgs e)
{
    ActiveControl = textBox1;
}

然而,更好的问题是为什么......我不完全确定那个问题的答案是什么.

编辑:我怀疑它与表单和TabControl都是容器这一事实有关,但我不确定.



2> 小智..:

试着把它放在Form_Shown()活动中.因为它在容器中,所以放入Form_Load甚至Form()构造函数都行不通.


它在Load中不起作用,因为在加载后,控件会根据Tab键顺序重新聚焦,并且聚焦控件被"覆盖".当您将控件聚焦于Shown时,没有任何东西可以通过聚焦另一个控件来"覆盖"您的调用.
推荐阅读
虎仔球妈_459
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有