VB.NETでIndexプロパティが無くなってしまったので困惑しています。
例えば、10個のテキストボックスの値を全て足すといった場合に
VB6で
for i=0 to 9
sum = sum + int(form1.txtNum(i).text)
next
という感じで実現されてたプログラムを
VB.NETではどのようにすればいいのでしょうか。
私はVB経験半年でしかも趣味で始めたので至らぬところもありますが、
協力させていただきたいと思います。
VB.NETで反復処理をさせたい場合、
controlクラスのcontrolcollectionを使って反復処理をした方が良いと思います。
Dim Sum As Int32 = 0
For Each ctrTextbox As Control In Me.Controls
If TypeOf (ctrTextbox) Is System.Windows.Forms.TextBox Then
Sum = Sum + Convert.ToInt32(ctrTextbox.Text)
End If
Next
Label1.Text = Sum
これでコントロール配列と同様の反復処理ができると思います。
TextBoxの値が数値以外の場合の例外処理はお任せします。
私はVB.NETを初めてまだ間もないので、回答側も初心者です。
的をえた回答になっているかわかりませんがOKならお知らせください。
アクアさんのヒントを元に
Handles,Controls,TypeOf,DirectCast
といったキーワードを使い、
Indexの代用をつくることに成功しました。
丁寧な回答、ありがとうございました。
ツイート | ![]() |