モードレスフォームのイベントを取得するには

解決


Kuro_Gen  2004-10-06 10:48:15  No: 85915

お世話になります。
VB6でForm1(exe)からForm2(DLL)を、モードレスでShowします。
その後Form2でボタンクリック等のイベントを、Form1(exe)で拾うことは可能でしょうか?
どうか宜しくお願い致します。


魔界の仮面弁士  2004-10-06 11:08:57  No: 85916

書き方はいろいろあると思いますが、例えばこんなイメージでしょうか。

'===== 呼び出し側(Form1) =====
Option Explicit
Private WithEvents SampleClass As Class1
Private Sub Form_Load()
    Set SampleClass = New Class1
End Sub
Private Sub Command1_Click()
    SampleClass.Show
End Sub
Private Sub SampleClass_ButtonClick()
    MsgBox "ボタンが押されました。"
End Sub

'===== DLL側 (Class1) =====
Option Explicit
Public Event FormClosed()
Public Event ButtonClick()
Private WithEvents MyForm As Form
Private WithEvents Button1 As VB.CommandButton
Public Sub Show()
    Set MyForm = Form1
    Load MyForm
    Set Button1 = Form1.Command1
    Form1.Show
End Sub
Private Sub Button1_Click()
    RaiseEvent ButtonClick
End Sub
Private Sub MyForm_Unload(Cancel As Integer)
    RaiseEvent FormClosed
End Sub


Kuro_Gen  2004-10-06 19:58:24  No: 85917

魔界の仮面弁士様
早速のご回答ありがとうございます。
やりたい事はすべて解決いたしました。
わかりやすい例まで示していただき、本当にありがとうございました。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加