VB6のコントロール配列と同じことを実現するには?

解決


かものねぎ  2007-08-31 02:36:44  No: 143870

お世話になります。

過去ログもかなりの数を目を通したのですが私の質問に合致するものがなかったので新規でお願いします。

VB6にてテキストボックスを100個作って順番に1〜100までの数字を代入していこうと思えばFor文でまわして

TextBox(i).Text=i

とやれば無駄なく入ったのですが2005ではコントロール配列そのものが廃止されている模様。。。
同じようなことを実現する方法をご存知の方がいらっしゃったらよろしくお願いいたします。


かものねぎ  2007-08-31 03:43:56  No: 143871

すみません。解決しました。
あとでその方法を書いておきますがとりあえず急ぎなのでご報告まで。。。


かものねぎ  2007-08-31 04:37:01  No: 143872

以下VB2005 ExpressEditionでの検証です。

上記にも書いたとおりtextbox100個に対して順番に1〜100の数字を入れるのであれば

for i=1 to 100
me.controls(i).text=i
next i

でいけます。
ただしこれだとフォームにテキストボックス以外のものがあるときにはそれにも上記番号が振られることになるので実際はコントロールがテキストボックスかをGetTypeで判別して使用しました。
他にもGroupBoxなどを使う方法があるみたいですね。

どうもお騒がせいたしました。


かものねぎ  2007-08-31 04:38:08  No: 143873

解決チェックのし忘れ・・・。
いったい一人でどんだけ書き込めばすむのか(笑)


特攻隊長まるるう  2007-08-31 17:21:19  No: 143874

自分でコントロールの配列を用意して、必要な参照のみを格納しておくとか、
更に進んで、コントロール自体動的に作成して、イベントハンドラに結びつけるとか。。。

この手の手法はTipsとして公開しているサイトも多いですよ?
このサイトでは初心者掲示板のほうで『コントロールの配列』をキーワード
検索してみるとか。

http://madia.world.coocan.jp/cgi-bin/VBBBS2/wwwlng.cgi?print+200412/04120067.txt
http://madia.world.coocan.jp/cgi-bin/VBBBS2/wwwlng.cgi?print+200704/07040067.txt


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加