Visão Geral Sobre o Modelo do Aplicativo Visual Basic
Visual Basic Fornece um modelo bem definido para controlar o comportamento dos aplicativos do Windows Forms: the Visual Basic Modelo de aplicativo. Este modelo inclui eventos para tratar do aplicativo de inicialização e desligamento, assim como eventos para exceções de captura não tratadas.Ele também fornece suporte para desenvolver aplicativos de instância única.O modelo do aplicativo é extensível, então os desenvolvedores que precisam ter mais controle podem personalizar seus métodos substituíveis.
Usos Para o Modelo do Aplicativo
Um aplicativo comum precisa executar tarefas quando é inicializado e finalizado.Por exemplo, quando ele inicializado, o aplicativo pode exibir um tela inicial, estabelecer conexões de banco de dados, carregar um estado salvo e assim por diante.Quando o aplicativo desliga, ele pode fechar conexões de banco de dados, salvar o estado atual e assim por diante.Além disso, o aplicativo pode executar código específico quando o aplicativo desliga inesperadamente, tais como durante uma exceção não tratada.
O modelo de aplicativo do Visual Basic torna fácil criar um aplicativo single-instance.Um aplicativo single-instance difere de um aplicativo normal em que apenas uma instância do aplicativo pode estar executando ao mesmo tempo.Uma tentativa de iniciar outra instância de um aplicativo de instância única resulta na instância original ser notificada — por meio do evento StartupNextInstance — que outra tentativa de abertura foi feita.A notificação inclui a ocorrência subsequente dos argumentos de linha de comando.Então a ocorrência subsequente do aplicativo é fechada para que qualquer inicialização possa ocorrer.
Um aplicativo single-instance inicia e verifica se ele é a primeira instância ou uma ocorrência subsequente do aplicativo:
Se ele for a primeira instância, ele começa como de costume.
Cada tentativa subsequente para iniciar o aplicativo, enquanto a primeira instância executa, resulta em comportamentos muito diferentes.A tentativa subsequente notifica a primeira instância sobre os argumentos de linha de comando e, então, imediatamente sai.A primeira instância manipula o evento StartupNextInstance para determinar quais foram os argumentos de linha de comando das instâncias subsequente, e continuam a ser executados.
Este diagrama mostra como uma instância subsequente sinaliza a primeira ocorrência.
Ao manipular o evento StartupNextInstance, você pode controlar como se comporta seu aplicativo de instância única.Por exemplo, Microsoft Outlook geralmente executa como um aplicativo de instância única; quando Outlook estiver sendo executado e você tentar iniciar o Outlook novamente, o foco será deslocado para a instância original, mas outra instância não abre.
Eventos no Modelo do Aplicativo
Os eventos a seguir são encontrados no modelo aplicativo:
Application startup.O aplicativo gera o evento Startup quando ele for iniciado.Ao manipular esse evento, você pode adicionar o código que inicializa o aplicativo antes que o formulário principal seja carregado.O evento Startup também fornece cancelando da execução do aplicativo durante essa fase do processo de inicialização, se desejado.
Você pode configurar o aplicativo para mostrar um tela inicial enquanto o aplicativo executa o código de inicialização.Por padrão, o modelo do aplicativo suprime a tela inicial quando os argumentos de linha de comando /nosplash ou -nosplash são usados.
Single-instance applications.O evento StartupNextInstance é gerado quando uma instância subsequente de um aplicativo de instância única é iniciado.O evento passa os argumentos de linha de comando da instância subsequente.
Unhandled exceptions.Se o aplicativo encontra uma exceção não tratada, ele lança o evento UnhandledException.O tratador daquele evento pode examinar a exceção e determinar se deseja continuar a execução.
O evento UnhandledException não é gerado em algumas circunstâncias.Para obter mais informações, consulte Evento My.Application.UnhandledException.
Network-connectivity changes.Se a disponibilidade da rede do computador for alterada, o aplicativo lança o evento NetworkAvailabilityChanged.
O evento NetworkAvailabilityChanged não é gerado em algumas circunstâncias.Para obter mais informações, consulte Evento My.Application.NetworkAvailabilityChanged.
Application shut down.O aplicativo fornece o evento Shutdown para sinalizar quando ele está prestes a ser desligado.Naquele tratador de eventos, é possível certificar-se de que as operações que seu aplicativo precisa executar — fechar e salvar, por exemplo — estão concluídas.Você pode configurar seu aplicativo para ser desligado quando o formulário principal fecha, ou para ser desligado somente quando todos os formulários fecham.
Disponibilidade
Por padrão, o modelo de aplicativo de Visual Basic está disponível para projetos Windows Forms.Se você configurar o aplicativo para usar um objeto diferente de inicialização, ou iniciar o código do aplicativo com um Sub Main personalizado, então esse objeto ou classe talvez precise fornecer uma implementação da classe WindowsFormsApplicationBase para usar o modelo de aplicativo.Para obter informações sobre como alterar o objeto de inicialização, consulte Como: Alterar o objeto de inicialização para um aplicativo (Visual Basic).
Consulte também
Conceitos
Estendendo o modelo de aplicativo do Visual Basic
Referência
Evento My.Application.StartupNextInstance
Evento My.Application.UnhandledException
Evento My.Application.Shutdown