如何制作一个可以检查/编辑多个VB.net文本框的for循环

时间:2018-07-18 17:56:59

标签: vb.net winforms

例如,我在VB Designer中有5个不同名称的文本框 TextBox1,TextBox2 .... TextBox5

是否有任何简单的方法通过递归使用1行来加载/检查TextBox1、2 ... 5?

我正在尝试使用列表数据结构列表加载文本框。 因此,每次我必须放置一个TextBox(number).Text来加载它。

Private Sub addbutton_click() handles addbutton.click
  TextBox1.Text=MyList1(Some_constant)(other_constant).Name(0)
  TextBox2.Text=MyList1(Some_constant)(other_constant).Name(1)
End Sub

我想使用一个for循环,它看起来应该像这样,以便我可以遍历Name(0),(1)和TextBox(number).Text。由于textBox是VB工具项,因此我无法遍历TextBox(number)。

Private Sub addbutton_click() handles addbutton.click
   For i As Integer = 0 to 5
       TextBox(i).Text = MyList1(Some_constant)(other_constant).Name(i)
   Next i 
End Sub

1 个答案:

答案 0 :(得分:2)

将索引值添加到TextBox的Tag属性中。 需要进行递归处理时,循环遍历控件:

   Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click

        Try

            'get your list of text boxes
            For Each tb As TextBox In Me.Controls.OfType(Of TextBox)
                Dim indexValue As Integer
                'get your index value out the tag
                Integer.TryParse(tb.Tag, indexValue)
                'use it
                tb.Text = MyList1(Some_constant)(other_constant).Name(indexValue)
            Next

        Catch ex As Exception
            MessageBox.Show(String.Concat("An exception occurred: ", ex.Message))
        End Try

    End Sub