我在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
我可以在vb中这样做吗?有没有其他方法可以做到这一点?谢谢!
答案 0 :(得分:0)
您可以创建文本框列表,并将所有需要的文本框添加到列表中。使用列表中的foreach循环逐个访问文本框并根据需要使用其text属性。
答案 1 :(得分:0)
您可以使用Controls.Find()这样获取TextBox,按顺序:
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
如果您只是遍历Controls集合,则TextBoxes可能会以不同的顺序(而不是它们的名称)返回,如果您在创建表单时剪切了它们或复制/粘贴了其中的一些。