クラスモジュール内で
Public WithEvents cmdbutton As CommandButton
と宣言し,
Set cmdbutton = Form1.Controls.Add("VB.CommandButton", "cmdbutton" & tab_num)
でコントロールを追加
praive sub cmdbutton_click()
End sub
をやってもイベントを受け取ることができないのですが、どのようにすればいいのですか?
> praive sub cmdbutton_click()
こんなコードにはなりませんよね。(^^;
どうせなら、きちんと書きましょう。
> をやってもイベントを受け取ることができないのですが
はて。こちらでは問題なく動作しますけれどね…。
参考までに、こちらでテストしたコードを載せておきます。
---- Class1
Option Explicit
Public WithEvents cmdbutton As CommandButton
Private Sub Class_Initialize()
Set cmdbutton = Form1.Controls.Add("VB.CommandButton", "cmdbutton1")
cmdbutton.Visible = True
End Sub
Private Sub cmdbutton_Click()
MsgBox cmdbutton.Name
End Sub
---- Form1
Option Explicit
Private X As Class1
Private Sub Form_Load()
Set X = New Class1
End Sub
Private Sub Form_Click()
'フォームをクリックすると、Class1のインスタンスを破棄します。
'(ただし、Button自体はUnloadさせていません)
Set X = Nothing
'この後は、ボタンを押しても、当然 Class1 内にあった
'cmdbutton_Clickの処理は動作しなくなります。
End Sub
Private Sub Form_Unload(Cancel As Integer)
Set X = Nothing
End Sub
ありがとうございました。
クラスのインスタンスが破棄されていたのが原因だったようです。
あと、誤字申し訳ありませんでした。
| ツイート |
|