Partilhar via


Visão geral do modelo de aplicativo Visual Basic

Visual Basic fornece um modelo bem definido para controlar o comportamento de aplicativos Windows Forms: o modelo de aplicativo Visual Basic. Esse modelo inclui eventos para lidar com a inicialização e o desligamento do aplicativo, bem como eventos para capturar exceções não tratadas. Ele também fornece suporte para o desenvolvimento de aplicativos de instância única. O modelo de aplicativo é extensível, para que os desenvolvedores que precisam de mais controle possam 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 é 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 código específico quando o aplicativo é desligado inesperadamente, como durante uma exceção não tratada.

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

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

  • Se for a primeira instância, começa 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, em seguida, é encerrada imediatamente. A primeira instância manipula o StartupNextInstance evento para determinar quais eram os argumentos de linha de comando da instância subsequente e continua a ser executada.

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

    Diagram that shows a single instance application image.

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 abre.

Eventos no modelo de aplicativo

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

  • Inicialização do aplicativo. O aplicativo gera o Startup evento quando ele é iniciado. Ao manipular esse evento, você pode adicionar 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 o /nosplash argumento de linha de comando ou -nosplash é usado.

  • 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 não tratadas. Se o aplicativo encontrar uma exceção não tratada, ele gerará o UnhandledException evento. Seu manipulador para esse evento pode examinar a exceção e determinar se a execução deve continuar.

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

  • Alterações na conectividade de rede. Se a disponibilidade de rede do computador for alterada, o aplicativo acionará o NetworkAvailabilityChanged evento.

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

  • Aplicação encerrada. O aplicativo fornece o Shutdown evento para sinalizar quando está prestes a desligar. 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 para desligar somente quando todos os formulários forem fechados.

Disponibilidade

Por padrão, o modelo de aplicativo 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 pode precisar fornecer uma implementação da classe para usar o modelo de WindowsFormsApplicationBase aplicativo. Para obter informações sobre como alterar o objeto de inicialização, consulte Página do aplicativo, Project Designer (Visual Basic).

Consulte também