我从0开始定义表单上控件的tabindex,但运行时一切都乱了。表单有点复杂,它有水平和垂直分割器、面板,组框和一些老的VB 6.0 ActiveX控件,其中包括树控件。即使我以编程方式完成并读取previewkeydown事件,并说如果是TAB,则控制2.Focus(),还是错了。真让人沮丧。有什么想法吗?...表单上还有不需要tab的标签,所以我将它们的索引定义为0。
你是如何设置它的? 如果你在visual studio中,在设计视图下选择视图 -> 选项卡顺序,然后按照你想要的顺序点击每个项目。
通常这对我很有效。
问题的原因是控件位于不同的容器中。 假设您有panel1.TabIndex = 0和panel2.TabIndex = 1,则在panel2中,textBox1.TabIndex = 0,在panel1中,textBox2.TabIndex = 1。 在运行时,textBox1会先于textBox2出现,因为它所在的面板先出现!
正如Kerry所说,使用“视图”->“制表符顺序”可以查看制表符顺序的完整层次结构。
按照以下步骤进行:
TabIndex
属性设置为直接子容器和控件,可以使用“视图”>“Tab 顺序”实用程序或直接从属性窗口中进行设置。完全忽略容器的 TabStop
属性,即使它非常重要,也默认为 false。