>我正在创建一个包含表单文本字段的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)