2017-01-23 47 views
0

我在vb中有60個文本框,我想將它們全部導出到一個文本文件中。我用這個代碼來做到這一點:指定對象名稱的計數器編號

My.Computer.FileSystem.WriteAllText("Filename.txt", TextBox1.Text) 

因爲我有60個文本框,所以我會帶我很長的時間來做到這一點,我用的是對於...下一頁緩解的過程。我想要這樣的代碼:

For i as integer = 1 to 60 
    My.Computer.FileSystem.WriteAllText("Filename.txt", TextBox(i).Text) 
Next 

我可以在vb中做到這一點嗎?有沒有其他方法可以做到這一點?謝謝!

回答

0

您可以創建一個文本框列表並將所有需要的文本框添加到列表中。使用列表中的foreach循環逐個訪問文本框,並根據需要使用它們的文本屬性。

0

可以使用Controls.Find()這樣得到爲了文本框,

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 

如果你簡單地迭代,如果你的控件集合文本框可以以不同的順序返回(比他們的名字)在創建表單時已將它們剪切或複製/粘貼其中的一些。

+0

Tks for answer!但是我得到了這個問題,它不會寫任何文本文件! –

+0

該代碼適合我。要麼你得到了一個試圖寫入文件的異常,並且你忽略了它,或者沒有找到任何TextBox,因爲你有不同的命名方案。 –