- ベストアンサー
VB6.0 コマンドボタンを追加したい
こんばんは FormOpenイベントの際に処理によって異なる数のコマンドボタンをフォーム上に表示させたいと思っています。 あらかじめ MAXの数だけフォーム上に設置して、表示、非表示するという方法もあるかと思いますが、記述することによってコマンドボタンを複数個新規作成後、表示させたいと思っています。 記述もしくは参考になるHP等がありましたら教えてください よろしくお願いいたします
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
動的コントロール配列を使用すれば可能です。 フォーム上に Command1(0) というコントロール配列が存在する場合、下記のコードで Command1(1) ~ (4) を動的に生成できます。 Private Sub Form_Load() Dim i As Long For i = 1 To 4 Load Me.Command1(i) With Me.Command1(i) .Top = Me.Command1(0).Top + .Height * i .Visible = True End With Next End Sub 【注意点】 ・Visible = True に設定しないと可視状態とならない。 ・Top プロパティ、 Left プロパティを設定するか、または Move メソッドで移動するかしないと、同じ位置に重なって表示される。 ・コントロール配列でないコントロールは Load / Unload による動的生成 / 破棄はできない。(実行時エラーとなる) ・「動的」コントロール配列の名の通り、ソースコードの静的解析は困難。動的コントロール配列の使用でメリットが生じるか否かはケースバイケースですが、適用は慎重に。
その他の回答 (1)
- imogasi
- ベストアンサー率27% (4737/17069)
CreateControlをキーワードにして、WEB照会してみてください。 For Nextで所定回数繰り返す。 VBAでだけできたのかVBでもできたのか、記憶が薄れていますのが、朝時間がなく調べられないのでよろしく。