首页 > 解决方案 > 如何制作一个可以检查/编辑多个 VB.net 文本框的 for 循环

问题描述

例如,我在 VB 设计器中有 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(number),因为 textBox 是一个 VB 工具项。

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

标签: vb.netwinforms

解决方案


将索引值添加到TagTextBox 的属性中。当您需要进行递归处理时,循环通过控件:

   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

推荐阅读