'Custom' 修飾子は、明示的なデリゲート型なしで宣言されたイベントでは無効です。
更新 : 2007 年 11 月
非カスタム イベントとは異なり、Custom Eventの宣言では、イベントのデリゲート型を明示的に指定する As 句をイベント名の後に指定する必要があります。
非カスタム イベントであれば、As 句と明示的なデリゲート型を指定するか、またはイベント名のすぐ後にパラメータ リストを指定することで定義できます。
Error ID: BC31122
このエラーを解決するには
カスタム イベントと同じパラメータ リストを指定してデリゲートを定義します。
たとえば、Custom Eventが Custom Event Test(ByVal sender As Object, ByVal i As Integer) で定義されている場合、対応するデリゲートの定義は次のようになります。
Delegate Sub TestDelegate(ByVal sender As Object, ByVal i As Integer)
カスタム イベントのパラメータ リストを、デリゲート型を指定する As 句で書き換えます。
先の例を使用すると、Custom Eventの宣言は次のように書き換えられます。
Custom Event Test As TestDelegate
使用例
次の例は、Custom Event を宣言して、必須である As 句をデリゲート型と一緒に指定します。
Delegate Sub TestDelegate(ByVal sender As Object, ByVal i As Integer)
Custom Event Test As TestDelegate
AddHandler(ByVal value As TestDelegate)
' Code for adding an event handler goes here.
End AddHandler
RemoveHandler(ByVal value As TestDelegate)
' Code for removing an event handler goes here.
End RemoveHandler
RaiseEvent(ByVal sender As Object, ByVal i As Integer)
' Code for raising an event goes here.
End RaiseEvent
End Event