2012-06-19 54 views
0

我有一個文本框數組。比方說這個:更改文本框數組TextBoxes的.Text屬性vb.net

Dim BreakFast1() As TextBox = {txtMBreak1, txtTBreak1, txtWBreak1, txtThBreak1, txtFBreak1, txtSBreak1, txtSunBreak1} 

我想要做的是設置爲每個array.I的文本框的。文本屬性什麼都試過這樣:

For i As Integer=0 to 6 
    BreakFast1(i).Text= "Smt" 
Next 

沒有成功。我究竟做錯了什麼? 在此先感謝

+0

這應該工作(雖然我會建議'For Each'循環)。那它不起作用呢?它是否會拋出異常?它編譯失敗嗎? –

+0

感謝您的評論.Throws NullReferenceException。我應該檢查對象是否爲空或使用「New」關鍵字創建對象實例。爲什麼For Each更好? – Pantheo

+0

哪個索引爲空? –

回答

0

您發佈的代碼沒有任何問題,但假設您要添加到數組中的文本框實際上是參考實例化的TextBox對象。如果那些是空的,那顯然是行不通的。爲了解決這個問題,你有幾種選擇:

  • Dim BreakFast1()...行向下移動到那些文本框對象被實例化的地方。
  • 將文本框變量設置爲該行之前的新實例。
  • 或者,放棄所有這些文本框變量,並將它們直接實例化到數組中。

例如:

Dim BreakFast1() As TextBox = {New TextBox(), New TextBox(), New TextBox(), New TextBox(), New TextBox(), New TextBox(), New TextBox()} 

當你循環通過他們,我會建議使用For Each循環,而不是(除非有就是爲什麼你需要知道內循環指數其他一些原因):

For Each i As TextBox In BreakFast1 
    i.Text = "Smt" 
Next