精通
英语
和
开源
,
擅长
开发
与
培训
,
胸怀四海
第一信赖
服务方向
联系方式
锐英源精品原创,禁止全文或局部转载,禁止任何形式的非法使用,侵权必究。点名“简易百科”和闲暇巴盗用锐英源原创内容。
现代界面依赖鼠标非常方便操作,但是鼠标在双手占用情况下,切换手用鼠标就有点麻烦了,所以界面焦点的处理就需要键盘的Tab键来配套使用,按Tab键就会让焦点在窗口或元素之间切换,一般是从上到下,从左到右切换。
在C#的WinForm开发里,窗口控件有个TabIndex属性,表示了顺序关系,比如从TabIndex为1的窗口控件上点击Tab键,会切换到TabIndex为2的窗口控件上,但是我在最近开发时,发现C#TextBox的Tab顺序不起作用、C#TextBox的TabIndex不起作用,跳不到TabIndex为2的控件上。这里只是举例,实际情况比较复杂。
通常来说,初学者拖几个控件试下TabIndex,肯定是没问题的,效果能直接出来。但在这个复杂情况下,为什么不行?这就考验了现场处理问题能力了,各位看官也请关注收藏下,干货来了。
窗口有复杂的关系,有父子关系,也有容器父子关系,比如GroupBox包含了TextBox,则GroupBox的TabIndex会控制TextBox的TabIndex,如果TextBox在GroupBox里,则大的WinForm窗体以GroupBox的TabIndex为顺序依据,所以把GroupBox的控制顺序改好就行,GroupBox本身是不能承载焦点的,Tab切换到GroupBox里,还是里面的TextBox获取焦点。
总结,TextBox在GroupBox里,则改GroupBox的TabIndex,会解决C#TextBox的Tab顺序不起作用、C#TextBox的TabIndex不起作用问题。
同理,TextBox在Panel等容器控件里也是会受影响。