0

テキストボックスの配列があります。これを言いましょう:

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

私がやりたいのは、配列の各テキストボックスに.Textプロパティを設定することです。これを試しました。

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

成功しませんでした。私は何が間違っているのですか?前もって感謝します

4

1 に答える 1

0

投稿したコードに問題はありませんが、配列に追加するテキストボックスが実際にインスタンス化されたTextBoxオブジェクトを参照していることを前提としています。それらがnullの場合、明らかに機能しません。これを修正するには、いくつかのオプションがあります。

  • 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
于 2012-06-19T18:54:32.033 に答える