日期:2014-05-19  浏览次数:20769 次

散分,顺便问个关于焦点的问题
WinForm上放个Panel,Panel里放个TabControl,TabPage里放个TextBox。

现在想让程序一启动就让TextBox1得到焦点。

在Form的Load事件里写   textBox1.Focus();   但是没有效果。

可是如果不要Panel就能得到期望的结果。

现在我的替代方案是把代码放在Shown事件里,也是可以的。

请达人解释一下为什么,谢谢。



------解决方案--------------------
SF,JF,不清楚!
------解决方案--------------------
我觉得你要通过Panel里面找到textbox的属性才可以
------解决方案--------------------
Load事件,窗体还没有出来呢,所以,放在Shown事件里不是替代方案,是必然的

===================================================
技术交流不该有界限 资源共享不该有条件
博客空间:http://blog.csdn.net/lovingkiss
资源下载:http://download.csdn.net/user/lovingkiss
Email:loving-kiss@163.com
本人说明: <我的帖子我做主,结贴率保持100%>
1、欢迎一切问题有关的交流——无论答案对错;
2、不欢迎 顶、Mark、支持之类口水混分的人;
我保留对非 <散分贴> 蹭分者的厌恶和鄙视...
精通:jīnɡtōnɡ对学问技术等透彻的了解并熟练掌握
所以,我没有精通,只有JZ
===================================================
------解决方案--------------------
//在Form的Load事件里写 textBox1.Focus(); 但是没有效果。
//可是如果不要Panel就能得到期望的结果。

窗体控件比较多的时候,在Load的时候,你设置了Textbox获得焦点,但是这时候控件实际上没有完全加载完毕,如果有新的控件产生——焦点就跑啦。

Shown在Load之后,这时候已经控件生成完毕了——所以会很稳定的。

===================================================
技术交流不该有界限 资源共享不该有条件
博客空间:http://blog.csdn.net/lovingkiss
资源下载:http://download.csdn.net/user/lovingkiss
Email:loving-kiss@163.com
本人说明: <我的帖子我做主,结贴率保持100%>
1、欢迎一切问题有关的交流——无论答案对错;
2、不欢迎 顶、Mark、支持之类口水混分的人;
我保留对非 <散分贴> 蹭分者的厌恶和鄙视...
精通:jīnɡtōnɡ对学问技术等透彻的了解并熟练掌握
所以,我没有精通,只有JZ
===================================================
------解决方案--------------------
楼上说得对
不过我都是设tabindex=0
------解决方案--------------------
帮顶,顺便学习
------解决方案--------------------
web中可以通过findcotrol来实现