RaiseEvent
Instrução
empregada para disparar um evento declarado ao nível do módulo, dentro de uma
classe, formulário ou documento, utilizando esta sintaxe:
RaiseEvent NomeDoEvento [(Argumentos)]
Onde,
- NomeDoEvento: argumento obrigatório, que se refere ao nome de um procedimento de evento declarado como a instrução Event;
- Argumentos: argumento opcional, refere-se à lista de valores passados para os argumentos do evento declarado, separados por vírgula.
As seguintes considerações são válidas sobre a instrução
RaiseEvent:
- O evento deverá sr necessariamente declarado dentro do módulo a partir do qual ele é disparado com uma instrução RaiseEvent, ou ocorrerá um erro em tempo de execução;
- Não é possível disparar um evento de controle ou formulário utilizando-se a instrução RaiseEvent. Apenas eventos declarados com a instrução Event poderão ser utilizados ou ocorrerá um erro em tempo de execução;
- Se o evento declarado possuir argumentos, estes devem ser envolvidos entre parênteses. Se o evento não possuir argumentos, os parênteses não devem ser utilizados ou ocorrerá erro em tempo de execução;
- Se um evento for declarado com o mesmo nome de um mesmo nome de um evento nativo do formulário, então o evento do formulário deixará de ser disparado. Por exemplo, se você declarar um evento chamado Click em um módulo de formulário, o evento Form_Click não será mais disparado. Porém o evento Form_Click poderá ser executado normalmente a partir de outro procedimento utilizando-se uma instrução Call <NoemDoEvento>.
Exemplo: O exemplo a seguir demonstra como empregar uma
instrução RaiseEent para disparar um evento declarado no módulo atual. Neste
caso, o módulo é empregado para manipular os dados de um formulário que possui
uma caixa de texto (txtTexto) que, ao ser alterada, marca a variável fAlterou
para True. Quando o foco sai da caixa de texto, o evento txtTexto_LostFocus
dispara e verifica o valor de fAlterou. Se fAlterou for True, a instrução RaiseEvent dispara o evento TextoAlterado no
formulário atual, com uma instrução RaiseEvent, passando-lhe como argumento a
variável fCancel, a qual pode ou não ser manipulada pelo evento
Form_TextoAlterado, impedindo a alteração da caixa de texto.
Public Event TextoAlterado(Cancel as Integer)
Sub txtTexto_Change
fAlterou = True
End Sub
Sub
txtTexto_LostFocus
Dim fCancel as integer
If fAlterou Then
RaiseEvent TextoAlterado(fCancel)
If fCancel Then
TxtTexto = “” ‘Usuário cancelou a alteração
End If
End If
End Sub
Até a Próxima!!
Nenhum comentário:
Postar um comentário