コントロール配列を実行時に作るには?

解決


hiro  2002-08-07 23:06:02  No: 75952

フォーム上のフレームにテキストボックスやラベルを配置するのを
実行時に分かる項目数に応じて作成しようと思っています。
ただ、後々の処理を考えてコントロール配列にしたいのですが、
識別名が同じになってしまい。
「その名前は既に使われています」というエラーになってしまいます。

今の処理は、下記のような感じです。
For i = 1 To 2 
   Me.Controls.Add "VB.CommandButton", "cmdA", frame1
   Form1!cmdA.Move 240 + i * 1080, 240, 1050, 375
   Form1!cmdA.Visible = True
Next i
フレーム上にコントロール配列を作る方法があったら教えて下さい。


Say  2002-08-08 00:29:15  No: 75953

たとえば、あらかじめこっそりcmdAという名の
CommandButtonを作って、Indexを0にしておき、

Dim i As Long
For i = 1 To 2
    Load cmdA(i)
    Set cmdA(i).Container = Frame1
    cmdA(i).Move 240 + i * 1080, 240, 1050, 375
    cmdA(i).Visible = True
Next

とか・・・。


hiro  2002-08-08 01:31:55  No: 75954

Sayさん有難うございました。
Set cmdA(i).Container = Frame1
のことに気づきませんでした。
Me.Controls.Addは、使わなくても出来たんですね。
ほんとに助かりました。
ありがとうございました。


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

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






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