我正在使用表单的文本字段创建XML文件。当我使用For Each
循环遍历它们时:
For each Ctrl in Me.Controls
'dosomething
Next
它没有按顺序排列;也就是说,它首先将TextBox
置于中间,然后是第一个,然后是另一个,它会继续这样。
有没有办法可以按顺序获取值?
答案 0 :(得分:7)
Me.Controls
按照创建顺序包含控件。
要更改它,请选择第一个控件(在设计器中),单击“发送到后面”,然后重复。
答案 1 :(得分:7)
您可以按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
答案 2 :(得分:0)
这可能适合你。不是VB人,但这是我尝试按照他们的位置从上到下排序控件。
... Me.Controls.OrderBy(Function(c) c.Location.Y)