- 250 名前:245 mailto:sage [2008/10/18(土) 20:01:02 ]
- >>248
Newにカーソル置いてF1押してるだけだとそのヘルプは出てこないから、 キーワードのヘルプだけでやってるとそこらでドツボにハマる。 というか、私もハマった一人なんだがな。なので、教えるのに若干くどい手段に。 ただ、>>248で従属オブジェクトと言ってるのは多分違う。 >>248の言っている従属オブジェクトと言うのは、 自作したクラスの中にTextBoxを丸ごと包括してたりする場合などを示す。 と言う訳で、Newの仕様を理解した所で回答。(宣言時のNewは自作Class専用みたいな物。) ヘルプで探してもナイスな方法が出てこなかった気がするので説明添えてサンプル提示してみる。 Controls.Addで追加してそれを参照する形でNewの代用とする。 ※txtNewは作成されるコントロール名なので複数Addする際は重複不可。 動的に割り当てる場合、大概は複数作る筈なのでindexに配列値を入れて、 Set Txt(index) = Me.Controls.Add("VB.TextBox", "txtNew" & format(index)) と言う形で作成する。 '--------------------------------始 Dim Txt(1) As TextBox Set Txt(0) = Me.Controls.Add("VB.TextBox", "txtNew" & Format(0)) Set Txt(1) = Me.Controls.Add("VB.TextBox", "txtNew" & Format(1)) '-------------------------------- '単発版 Dim Txt1 As TextBox Set Txt1 = Me.Controls.Add("VB.TextBox", "txtNew1") '--------------------------------終 これを走らせると、定義したformにtxtNew1と言うオブジェクト名を持つTextBoxを作成し、 参照の設定を終えた形になる。 ただし、Me.Controlsの数は255以下とされていて、それを超えて生成しようとすると失敗する。 「際限なくコントロールを作成できるボタン」等を作成する場合は、 カウント数を見ながらエラートラップすべし。
|

|