掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
クラスでイベントを作ってフォームで発生させるには (ID:141089)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
標準的な「EventHandler」タイプのイベントにしたいのであれば、 今のコード(クラス側とフォーム側の両方)に、若干の修正が必要です。 まず、クラス側ですが、 > Public Event endtest As EventHandler これは Public Event Sub endtest(ByVal sender As Object, ByVal e As EventArgs) と同義になります。すなわち 2 つの引数が必要であり、この場合の RaiseEvent は RaiseEvent endtest(Me, EventArgs.Empty) という指定になります(sender はイベント発生元、e はイベントの内容です)。 そして、それを受けとるフォーム側では、 > Private Sub endtest() ではなく、先の引数を追加した Private Sub test0_endtest(ByVal sender As Object, ByVal e As EventArgs) とします。ボタンの Click イベントなどと同じイベント引数ですね。 # フォーム側のプロシージャ名は、"endtest" でも "test0_endtest" でも # それ以外の名前でも構いません。 なお、フォーム側の変数を Private WithEvents test0 As test とする手法もあります。この場合は AddHandler を使う代わりに Private Sub test0_endtest(ByVal sender As Object, ByVal e As EventArgs) Handles test0.endtest のようにして、Handles 句を利用することになります。 ----------- あるいは、フォーム側の定義を変更したくない(引数の無いイベントを作りたい)なら、 クラス側のイベント定義を Public Event Sub endtest() にしてやれば OK です。あるいは Public Event endtest As MethodInvoker でも OK。
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.