掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
ActiveX.EXEでイベントを発生させ、VB.NETで受け取るには? (ID:102432)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
はじめて投稿させて頂きます。 VB6にてActiveX EXE を作成し、そこでRaiseEventを発行しております。 このイベントを、VB.NET(初めはVB6の標準EXEでも可)にて受け取りたいのですが、どのようにしたら良いのでしょうか? 過去ログに解決済みの似たような質問がございましたが、上手く動作させることが出来なかったため、質問させて頂きました。 また、全く同じソースコードでも、「ActiveX DLL」の場合は、VB6の標準EXEと正常に連携動作しております。 (ただし、VB.NETで連携しようとすると、Formを表示することは出来ない旨のエラーとなってしまいます。このため「ActiveX EXE」で作成しようと思いました) 簡単なソースを下記致します。 【ActiveX EXE】 1つのクラスと、1つのFormから出来ております。 1)クラス(仮にTestClass) 'イベント定義 Public Event CallingEvent(ByVal str1 As String, _ ByVal str2 As String, _ ByVal str3 As String, _ ByVal str4 As String) Private WithEvents testForm As TestForm 'Formオープン処理(MTMW開始処理をForm側で行う) Public Sub openForm() Set testForm = New TestForm testForm.Show End Sub 'Formからのイベント Private Sub testForm_CallingEventForm(ByVal str1 As String, _ ByVal str2 As String, _ ByVal str3 As String, _ ByVal str4 As String) 'そのまま再度イベント発行 RaiseEvent CallingEvent(str1, str2, str3, str4) 'このイベント発行が、VB.NET(またはVB6の標準EXE)に飛ばないです 'ここまで処理が来ていることは確認済みです End Sub 'Formクローズ処理 Public Sub closeForm() 'Formクローズ Call Unload(testForm) End Sub 2)Form(仮にTestForm) 'イベント定義 Public Event CallingEventForm(ByVal str1 As String, _ ByVal str2 As String, _ ByVal str3 As String, _ ByVal str4 As String) 'イベント処理 Private Sub AAA_BBB() '色々処理 'イベント発行 RaiseEvent CallingEventForm(str1, str2, str3, str4) 'このイベント発行は上手く動作しています End Sub 【VB.NET側処理】 Public Class TestForm2 Private WithEvents testClass As TestProject.TestClass = New TestProject.TestClass Private Sub FrmMain_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load '色々処理 testClass.openForm() 'この処理は成功します End Sub Private Sub frmMain_FormClosed(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosedEventArgs) Handles Me.FormClosed '色々処理 testClass.closeForm() 'この処理も成功します End Sub Private Sub CCC(ByVal str1 As String, _ ByVal str2 As String, _ ByVal str3 As String, _ ByVal str4 As String) Handles testClass.CallingEvent 'ここのイベントが受信できません End Sub End Class どこに過ちがあるのか、ご教示頂ければ幸いです。
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2020 Takeshi Okamoto All Rights Reserved.