如何控制面板内TextBox的焦点顺序?

Agn*_*lec 9 c# windows-forms-designer winforms

我有一个包含许多TextBox的表单.我需要一组内的一些TextBox,以及另一组内的其他文本框.按组,我只需要一种方法来使这些TextBox看起来彼此属于.

我制作了两个面板并将TextBox添加到它们中.然后,我在这些面板周围放置了一个边框.

但是,我的问题是,当我按下时Tab,焦点不会转到下一个TextBox,而是按随机顺序转到另一个TextBox.有时下一个TextBox位于第一个Panel中,有时则位于第二个Panel中.如何控制焦点顺序?

这是一张图片来说明我的观点:

一个图像来说明我的观点

She*_*ell 8

Tab顺序应该像这样设置.顶部容器面板应分别具有TabIndex 0和1,并且其子控件应具有其父控件Tab Index的TabIndex前缀.即.如果Panel1有TabIndex 0,那么它的子控件应该有TabIndex 0.0,0.1,0.2,0.3 ......

注意:确保如果任何控件的Tab Stop属性设置为false,则光标将不会移动到该控件中.在这种情况下,TabIndex将无法正常工作.

在此输入图像描述


Dav*_*eau 6

正如其他人所说的那样,使用TabIndex属性来指示Tab键顺序,并使用TabStop属性来确定控件是否可以被选中.

但是,设计师可以采用更简单的方法.当设计师在您的形式看,请确保您的形式被选中(而不是在窗体上控件)(您可以在周围的形式空白点击一次即可),然后选择查看- > Tab键顺序.

在Tab键顺序设计器处于活动状态时,您将看到TabIndex每个控件的es.按照您希望能够通过它们的顺序单击它们.TabIndex分配时,工具提示将从蓝色变为白色.完成后,再次选择" 视图" - >"选项卡顺序"以返回到正常的设计器状态.

另外要提到的是建议UserControl尽可能使用s.如果你重复使用的良好设计UI的部分UserControlS,你可以避免与几十个几十片的形式停止分配,因为每个UserControl都有其自己的内部Tab键顺序时,放置在窗体上,将自动适用,但您只需要设置TabIndex的的UserControl本身.