フォームのテキストフィールドを使用して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
作成された順序でコントロールが含まれます。
これを変更するには、(デザイナで)最初のコントロールを選択し、[最背面へ移動]をクリックして繰り返します。
あなたはによって注文することができます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)