'Custom' 修飾子は、明示的なデリゲート型なしで宣言されたイベントでは無効です。

更新 : 2007 年 11 月

非カスタム イベントとは異なり、Custom Eventの宣言では、イベントのデリゲート型を明示的に指定する As 句をイベント名の後に指定する必要があります。

非カスタム イベントであれば、As 句と明示的なデリゲート型を指定するか、またはイベント名のすぐ後にパラメータ リストを指定することで定義できます。

Error ID: BC31122

このエラーを解決するには

  1. カスタム イベントと同じパラメータ リストを指定してデリゲートを定義します。

    たとえば、Custom Eventが Custom Event Test(ByVal sender As Object, ByVal i As Integer) で定義されている場合、対応するデリゲートの定義は次のようになります。

    Delegate Sub TestDelegate(ByVal sender As Object, ByVal i As Integer)
    
  2. カスタム イベントのパラメータ リストを、デリゲート型を指定する 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

参照

参照

Custom

Event ステートメント

Delegate ステートメント

その他の技術情報

Visual Basic におけるイベント