TabIndex不能正常工作的可能原因是什么

本文关键字:是什么 工作 不能 常工作 TabIndex | 更新日期: 2023-09-27 17:57:55

所以我从0开始,并为表单上的控件定义tabindex,但在运行时一切都一团糟。形式有点复杂。它有水平和垂直的拆分器和面板、组框和一些旧的VB6.0 activeX控件,这些控件中有一个Tree控件。即使我以编程方式进行,并阅读previewkeydown事件g,然后说如果它是TAB,那么control2.Focus(),它仍然是错误的。太令人沮丧了。有什么想法吗。。表单上也有不需要选项卡的标签,所以我为它们的索引定义了0。

TabIndex不能正常工作的可能原因是什么

如何设置?如果您在visual studio中,表单处于设计视图中,请选择视图->选项卡顺序,然后按所需顺序单击每个项目。

通常适用于我。

原因是控件位于不同的容器中。假设您有panel1.TabIndex=0和panel2.TabIndex=1,那么在panel2中,textBox1.TabIndek=0,在panel1中,textBox2.TabIndex=1。在运行时,textBox1位于textBox2之前,因为它的面板位于第一位!

正如kerry所说,使用view->tab顺序可以查看选项卡顺序的完整层次结构。

我之所以提到这一点,是因为我在stackoverflow上发现的任何winforms选项卡顺序线程中都没有看到它。

如果您有多个面板,您可以通过单击面板,转到属性来更改面板选项卡的顺序,然后将TabIndex更改为您想要的任何内容。这将允许您按照所需的顺序从一个面板导航到另一个面板。然后,在每个面板中,按照上面列出的建议步骤,使用视图>选项卡顺序,然后按要设置的顺序单击每个单元格。

按照以下步骤操作:

  1. 使用View>TabOrder实用程序或直接从属性窗口将TabIndex属性设置为DIRECT CHILD容器和窗体或容器中的控件。完全忽略容器的TabStop属性,即使它非常重要,它也默认为false
  2. 对每个容器重复步骤1