2

フォームのテキストフィールドを使用してXMLファイルを作成しています。For Eachループを使用してそれらを通過するとき:

For each Ctrl in Me.Controls 
    'dosomething
Next

順番にそれらを取りません。つまり、最初TextBoxに真ん中で、次に最初のもの、次に別のものを取り、そのように進み続けます。

値を順番に取得する方法はありますか?

4

3 に答える 3

7

Me.Controls作成された順序でコントロールが含まれます。

これを変更するには、(デザイナで)最初のコントロールを選択し、[最背面へ移動]をクリックして繰り返します。

于 2012-07-04T21:19:34.917 に答える
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
于 2012-07-04T21:27:59.190 に答える
0

これはあなたのために働くかもしれません。VBの人ではありませんが、これはコントロールを上から下に位置順に並べる私の試みです。

... Me.Controls.OrderBy(Function(c) c.Location.Y)
于 2012-07-04T21:24:09.783 に答える