按顺序浏览控件



>我正在创建一个包含表单文本字段的XML文件。当我使用For Each循环遍历它们时:

For each Ctrl in Me.Controls 
    'dosomething
Next

不按顺序排列它们;也就是说,它首先在中间拿TextBox,然后是第一个,然后是另一个,然后它一直这样。

有没有办法按顺序获取值?

您可以

TabIndex订购:

Dim allTextBoxes = From txt In Me.Controls.OfType(Of TextBox)()
                   Order By txt.TabIndex

另一种方法是按位置订购:

allTextBoxes = From txt In Me.Controls.OfType(Of TextBox)()
               Order By txt.Location.Y, txt.Location.X

For Each txt In allTextBoxes
    '  ...
Next

Me.Controls按创建顺序包含控件。

若要更改此设置,请选择第一个控件(在设计器中),单击"置于底层",然后重复此操作。

这可能

对你有用。 不是 VB 人,但这是我尝试按位置从上到下对控件进行排序的尝试。

... Me.Controls.OrderBy(Function(c) c.Location.Y)

最新更新