Compartilhar via


Visão geral do modelo de aplicativo do Visual Basic

O Visual Basic fornece um modelo bem definido para controlar o comportamento de aplicativos do Windows Forms: o modelo de aplicativo do Visual Basic. Esse modelo inclui eventos para lidar com a inicialização e o desligamento do aplicativo, bem como eventos para capturar exceções sem tratamento. Ele também fornece suporte para o desenvolvimento de aplicativos de instância única. O modelo de aplicativo é extensível, portanto, os desenvolvedores que precisam de mais controle podem personalizar seus métodos substituíveis.

Usos para o modelo de aplicativo

Um aplicativo típico precisa executar tarefas quando é iniciado e desligado. Por exemplo, quando ele é iniciado, o aplicativo pode exibir uma tela inicial, fazer conexões de banco de dados, carregar um estado salvo e assim por diante. Quando o aplicativo é desligado, ele pode fechar conexões de banco de dados, salvar o estado atual e assim por diante. Além disso, o aplicativo pode executar um código específico quando o aplicativo é desligado inesperadamente, como durante uma exceção sem tratamento.

O modelo de Aplicativo do Visual Basic facilita a criação de um aplicativo de instância única . Um aplicativo de instância única difere de um aplicativo normal, em que apenas uma instância do aplicativo pode ser executada por vez. Uma tentativa de iniciar outra instância de um aplicativo de instância única faz com que a instância original seja notificada, por meio do StartupNextInstance evento, de que outra tentativa de inicialização foi feita. A notificação inclui os argumentos de linha de comando da instância subsequente. A instância subsequente do aplicativo é fechada antes que qualquer inicialização possa ocorrer.

Um aplicativo de instância única é iniciado e verifica se ele é a primeira instância ou uma instância subsequente do aplicativo:

  • Se for a primeira instância, ela começará como de costume.

  • Cada tentativa subsequente de iniciar o aplicativo, enquanto a primeira instância é executada, resulta em um comportamento muito diferente. A tentativa subsequente notifica a primeira instância sobre os argumentos de linha de comando e sai imediatamente. A primeira instância lida com o evento StartupNextInstance para determinar os argumentos de linha de comando da instância subsequente e continua a executar-se.

    Este diagrama mostra como uma instância subsequente sinaliza a primeira instância:

    Diagrama que mostra uma imagem de aplicativo de instância única.

Ao manipular o StartupNextInstance evento, você pode controlar como seu aplicativo de instância única se comporta. Por exemplo, o Microsoft Outlook normalmente é executado como um aplicativo de instância única; quando o Outlook está em execução e você tenta iniciar o Outlook novamente, o foco muda para a instância original, mas outra instância não é aberta.

Eventos no modelo de aplicativo

Os seguintes eventos são encontrados no modelo de aplicativo:

  • Inicialização do aplicativo. O aplicativo aciona o Startup evento quando ele é iniciado. Ao manipular esse evento, você pode adicionar um código que inicializa o aplicativo antes que o formulário principal seja carregado. O Startup evento também prevê o cancelamento da execução do aplicativo durante essa fase do processo de inicialização, se desejado.

    Você pode configurar o aplicativo para mostrar uma tela inicial enquanto o código de inicialização do aplicativo é executado. Por padrão, o modelo de aplicativo suprime a tela inicial quando os argumentos de linha de comando /nosplash ou -nosplash são usados.

  • Aplicativos de instância única. O StartupNextInstance evento é gerado quando uma instância subsequente de um aplicativo de instância única é iniciada. O evento passa os argumentos de linha de comando da instância subsequente.

  • Exceções sem tratamento. Se o aplicativo encontrar uma exceção sem tratamento, ele gerará o UnhandledException evento. O manipulador desse evento pode examinar a exceção e determinar se deve continuar a execução.

    O evento UnhandledException não é gerado em algumas circunstâncias. Para obter mais informações, consulte UnhandledException.

  • Alterações de conectividade de rede. Se a disponibilidade da rede do computador mudar, o aplicativo gerará o NetworkAvailabilityChanged evento.

    O evento NetworkAvailabilityChanged não é gerado em algumas circunstâncias. Para obter mais informações, consulte NetworkAvailabilityChanged.

  • Aplicativo encerrado O aplicativo fornece o Shutdown evento para sinalizar quando ele está prestes a ser desligado. Nesse manipulador de eventos, você pode garantir que as operações que seu aplicativo precisa executar — fechando e salvando, por exemplo — sejam concluídas. Você pode configurar seu aplicativo para desligar quando o formulário principal for fechado ou desligar somente quando todos os formulários forem fechados.

Disponibilidade

Por padrão, o modelo de Aplicativo do Visual Basic está disponível para projetos do Windows Forms. Se você configurar o aplicativo para usar um objeto de inicialização diferente ou iniciar o código do aplicativo com um personalizado Sub Main, esse objeto ou classe poderá precisar fornecer uma implementação da WindowsFormsApplicationBase classe para usar o modelo de aplicativo. Para obter informações sobre como alterar o objeto de inicialização, consulte Página de Aplicativo, Designer de Projeto (Visual Basic).

Consulte também