Wagner,
Vc pode fazer uma critica no Evento Form_QueryUnload do seu Form.
Quanto a Vantagens do Validate em relacao ao LostFocus, vou citar a que eu acho a principal:
- Num Form coloque 2 Campos(TextBox ou MaskEditBox) para a entrada de datas.
- Faca Critica de datas nos 2 no evento LostFocus
como no LostFocus naum ha um Cancel vc teria de fazer text1.Setfocus para que ele continue no text1 caso nao seja uma data valida, naum eh?
- Teste
- Agora faca a mesma critica no Validate e apague o LostFocus
No case de nao ser uma data valida coloque:
Cancel = True
Exit Sub
- Teste
Vc vai ver que no Primeiro caso, aparecera a mensagem de erro no Text1, mas o foco passara para o Text2. Como ha o Text1.SetFocus, o evento LostFocus do Text2 sera acionado, aparecendo a Mensagem de erro e passando o foco para o Text1, entrando assim num "Loop Infinito".
No caso do Validate, ao Cancelar com o comando Cancel = True o Foco Continua no Text1, naum acionando nenhuma Sub de outro objeto.