我正在使用表单的文本字段创建一个 XML 文件。当我使用For Each
循环遍历它们时:
For each Ctrl in Me.Controls
'dosomething
Next
它没有按顺序排列它们;也就是说,它首先TextBox
在中间,然后是第一个,然后是另一个,然后一直这样。
有没有办法让我按顺序取值?
我正在使用表单的文本字段创建一个 XML 文件。当我使用For Each
循环遍历它们时:
For each Ctrl in Me.Controls
'dosomething
Next
它没有按顺序排列它们;也就是说,它首先TextBox
在中间,然后是第一个,然后是另一个,然后一直这样。
有没有办法让我按顺序取值?
Me.Controls
包含按创建顺序排列的控件。
要更改它,请选择第一个控件(在设计器中),单击 Send to Back,然后重复。
您可以通过以下方式订购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
这可能对你有用。不是 VB 人,但这是我尝试按位置从上到下对控件进行排序。
... Me.Controls.OrderBy(Function(c) c.Location.Y)