ピクチャボックスをコードで作成するには


ピクチャ  2003-02-28 14:42:12  No: 77258  IP: [192.*.*.*]

デザイン時にピクチャボックスを配置するのではなく、コードで
ピクチャボックスをフォームに配置することは可能でしょうか。
既に貼り付けたものをVisibleで制御するというのは無しにして。

編集 削除
ムナ  2003-02-28 17:48:30  No: 77259  IP: [192.*.*.*]

1個だけ ソースとなる PictureBox があれば
Load ステートメントでいけると思います

編集 削除
Say  2003-02-28 18:32:35  No: 77260  IP: [192.*.*.*]

存在しない状態からの配置なら
Controls.Add を使ってください。

編集 削除
おはぎ  2003-03-05 17:18:25  No: 77261  IP: [192.*.*.*]

割り込み失礼します。
VBでControls.Addはどのように使えばいいのか教えていただけますか?

編集 削除
魔界の仮面弁士  2003-03-06 01:32:33  No: 77262  IP: [192.*.*.*]

Contols.Addが利用できるのは、VB6のみです。

具体的なサンプルは、VB6のCD-ROM内にあるサンプル ディレクトリの
\CtlsAdd を参照してください。
また、使用方法に関しては、MSDNライブラリを御覧ください。

なお、Web版のMSDNライブラリでは、以下のページに記述があります。
http://www.microsoft.com/japan/developer/library/vb98/vbmthaddmethod(controlscollection).htm

編集 削除
おはぎ  2003-03-06 13:16:38  No: 77263  IP: [192.*.*.*]

魔界の仮面弁士さんありがとうございます。
実は、作るコントロールを配列化したいのですが、可能でしょうか?
以下がソースです。
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" ・・・といくらでも増やせるようにしたいのです。

編集 削除
魔界の仮面弁士  2003-03-06 14:11:56  No: 77264  IP: [192.*.*.*]

コントロール配列オブジェクトに対するWithEvents宣言はできませんし、
コントロール配列オブジェクトのメンバを、Controls.Addする事もできません。

単一のコントロールオブジェクトをControls.Addし、それをオブジェクト配列として
管理するクラスと、イベントを一元管理するような中継クラスを作成すれば、
コントロール配列の真似事が可能ですが……はっきりいって面倒なだけです。(^_^;)

どうせ配列化するのであれば、素直にLoadステートメントを利用するのが得策かと。

編集 削除
おはぎ  2003-03-06 15:47:17  No: 77265  IP: [192.*.*.*]

魔界の仮面弁士さんありがとうございます!!
Loadステートメントでうまくいきそうです。
感謝です。

編集 削除