当存在tabcontrol控件的时候如何让textbox获取焦点 How to let textbox get focus in VB.net if there is tabcontrol in same form

前端之家收集整理的这篇文章主要介绍了当存在tabcontrol控件的时候如何让textbox获取焦点 How to let textbox get focus in VB.net if there is tabcontrol in same form前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

今天遇到一个问题,我的textBox(txt1)无论如何都得不到焦点

我尝试了以下函数

txt1.focus

txt1.select

txt1.selectall

me.ActiveControl = txt1

失败

查资料后又做了如下设置

把txt1的taborder设置成0,检查所有其他控件,并把他们的taborder改成大于0整数 失败

我猜测问题在和textBox平级的tabcontrol上,把tabcontrol的tabstop设置成false 失败

然后我怀疑是因为我把代码放在了form load事件里

于是把代码移动到 form VisibleChanged 事件里 失败

这时我在断点处发现,activecontrol已经正常,但是txt1.canfocus居然是false,而且也没有被选中,实在不知道form内部是如何实现的taborder了(难道是一层一层的递归?如果这样,岂不是顶层控件很难得到焦点?)。即使我把tabcontrol内部的控件(在其他form里)设置为0以上的taborder似乎也起不到作用

最后只好用了个近似hack的方法解决了。如果有哪位高手知道更好的方法,请不吝赐教,感激不尽

button1.Select()

' button1: taborder = 1

Me.Select(True,True) ' txt1: taborder = 0

成功 This code works!

Tang

09/03/27

原文链接:https://www.f2er.com/vb/263189.html

猜你在找的VB相关文章