Partilhar via


o modificador 'Custom' inválido em eventos declarados sem tipos delegado explícitos

Diferentemente de um evento não personalizado, uma declaração Custom Event exige uma cláusula As após o nome do evento que especifica explicitamente o tipo delegado para o evento.

Eventos não personalizados podem ser definidos com uma cláusula As cláusula e um tipo delegado explícito, ou com uma lista de parâmetros imediatamente após o nome do evento.

ID de erro: BC31122

Para corrigir este erro

  1. Defina um delegado com a mesmo lista de parâmetros que o evento personalizado.

    Por exemplo, se o Custom Event foi definido por Custom Event Test(ByVal sender As Object, ByVal i As Integer), então o delegado correspondente viria a seguir.

    Delegate Sub TestDelegate(ByVal sender As Object, ByVal i As Integer)
    
  2. Substitua a lista de parâmetros do evento personalizado com uma cláusula As especificando o tipo delegado.

    Continuando com o exemplo, a declaraçãoCustom Event poderia ser reescrita da seguinte maneira.

    Custom Event Test As TestDelegate
    

Exemplo

Este exemplo declara um Custom Event e especifica a cláusula As necessária com um tipo delegado.

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

Consulte também

Referência

Personalizado

Declaração de evento

Instrução Delegate

Outros recursos

Eventos no Visual Basic