Vb.net 为对象名称指定计数器编号

Vb.net 为对象名称指定计数器编号,vb.net,Vb.net,我在vb中有60个文本框,我想将它们全部导出到一个文本文件中。我使用此代码来执行此操作: My.Computer.FileSystem.WriteAllText("Filename.txt", TextBox1.Text) 因为我有60个文本框,所以要花很长时间才能完成,所以我使用For…Next来简化程序。我想要这样的代码: For i as integer = 1 to 60 My.Computer.FileSystem.WriteAllText("Filename.txt", Te

我在vb中有60个文本框,我想将它们全部导出到一个文本文件中。我使用此代码来执行此操作:

My.Computer.FileSystem.WriteAllText("Filename.txt", TextBox1.Text)
因为我有60个文本框,所以要花很长时间才能完成,所以我使用For…Next来简化程序。我想要这样的代码:

For i as integer = 1 to 60
   My.Computer.FileSystem.WriteAllText("Filename.txt", TextBox(i).Text)
Next
    Dim fileName As String = "c:\some folder\path\Filename.txt"
    Using sw As New System.IO.StreamWriter(fileName)
        Dim tb As TextBox
        Dim matches() As Control
        For i As Integer = 1 To 60
            matches = Me.Controls.Find("TextBox" & i, True)
            If matches.Length > 0 AndAlso TypeOf matches(0) Is TextBox Then
                tb = DirectCast(matches(0), TextBox)
                sw.WriteLine(tb.Text)
            End If
        Next
    End Using

我可以用vb做吗?有没有其他方法可以做到这一点?谢谢

您可以创建文本框列表,并将所有需要的文本框添加到列表中。使用列表上的foreach循环逐个访问文本框,并根据需要使用其文本属性。

您可以按顺序获得文本框,如下所示:

For i as integer = 1 to 60
   My.Computer.FileSystem.WriteAllText("Filename.txt", TextBox(i).Text)
Next
    Dim fileName As String = "c:\some folder\path\Filename.txt"
    Using sw As New System.IO.StreamWriter(fileName)
        Dim tb As TextBox
        Dim matches() As Control
        For i As Integer = 1 To 60
            matches = Me.Controls.Find("TextBox" & i, True)
            If matches.Length > 0 AndAlso TypeOf matches(0) Is TextBox Then
                tb = DirectCast(matches(0), TextBox)
                sw.WriteLine(tb.Text)
            End If
        Next
    End Using

如果您只是在控件集合上进行迭代,则如果您在创建表单时剪切或复制/粘贴了一些文本框,则文本框可能会以不同的顺序返回(与其名称不同)。

Tks获取答案!但我遇到了一个问题,它不向文本文件写入任何内容!代码对我来说很好用。您可能在尝试写入文件时遇到异常而忽略了它,或者由于您使用了不同的命名方案,因此找不到任何文本框。