デザイン時にピクチャボックスを配置するのではなく、コードで
ピクチャボックスをフォームに配置することは可能でしょうか。
既に貼り付けたものをVisibleで制御するというのは無しにして。
1個だけ ソースとなる PictureBox があれば
Load ステートメントでいけると思います
存在しない状態からの配置なら
Controls.Add を使ってください。
割り込み失礼します。
VBでControls.Addはどのように使えばいいのか教えていただけますか?
Contols.Addが利用できるのは、VB6のみです。
具体的なサンプルは、VB6のCD-ROM内にあるサンプル ディレクトリの
\CtlsAdd を参照してください。
また、使用方法に関しては、MSDNライブラリを御覧ください。
なお、Web版のMSDNライブラリでは、以下のページに記述があります。
http://www.microsoft.com/japan/developer/library/vb98/vbmthaddmethod(controlscollection).htm
魔界の仮面弁士さんありがとうございます。
実は、作るコントロールを配列化したいのですが、可能でしょうか?
以下がソースです。
Public gb_ViewNum As Integer
Public gb_Name As String
' オブジェクト変数を CommandButton として宣言します。
Private WithEvents cmdObject As CommandButton
Private Sub Command1_Click()
gb_ViewNum = gb_ViewNum + 1
gb_Name = "ビュー" & gb_ViewNum
Set cmdObject(gb_ViewNum) = Form1.Controls.Add("VB.CommandButton", "gb_Name")
cmdObject(gb_ViewNum).Visible = True
cmdObject(gb_ViewNum).Width = 1000
End Sub
Private Sub Form_Load()
gb_ViewNum = 0
End Sub
これで、新しく作るコマンドボタンにindexが付けられて、名前が"ビュー1","ビュー2" ・・・といくらでも増やせるようにしたいのです。
コントロール配列オブジェクトに対するWithEvents宣言はできませんし、
コントロール配列オブジェクトのメンバを、Controls.Addする事もできません。
単一のコントロールオブジェクトをControls.Addし、それをオブジェクト配列として
管理するクラスと、イベントを一元管理するような中継クラスを作成すれば、
コントロール配列の真似事が可能ですが……はっきりいって面倒なだけです。(^_^;)
どうせ配列化するのであれば、素直にLoadステートメントを利用するのが得策かと。
魔界の仮面弁士さんありがとうございます!!
Loadステートメントでうまくいきそうです。
感謝です。
ツイート | ![]() |