親クラスに定義したイベントを、直接子クラスから呼び出すことはできません。(子クラスから親クラスのイベントを直接 RaiseEvent することはできません。)
そのようなことをしたい場合は、親クラスに Protected な中継ぎメソッドを用意しておいて、子クラスからはそれを呼び出します。
' 親クラス Public Class Class1 Public Event Event1(msg As String) Protected Sub OnEvent1(msg As String) RaiseEvent Event1(msg) End Sub End Class ' 子クラス Public Class Class2 Inherits Class1 End Class ' 孫クラス Public Class Class3 Inherits Class2 Sub test() OnEvent1("Hello!") End Sub End Class
呼び出し側は以下な感じ。
呼び出し側は、Class1 は意識せず、Class3 のイベントとして受けることができます。
Module Module1 Private WithEvents _class3 As New Class3 Sub Main() _class3.test() End Sub Private Sub _class3_Event1(msg As String) Handles _class3.Event1 Console.WriteLine(msg) End Sub End Module