Partilhar via


Estendendo o modelo de aplicativo do Visual Basic

Você pode adicionar funcionalidade ao modelo de aplicativo substituindo os membros Overridable da classe WindowsFormsApplicationBase. Essa técnica permite que você personalize o comportamento do modelo de aplicativo e adicione chamadas aos seus próprios métodos à medida que o aplicativo é iniciado e desligado.

Visão geral visual do modelo de aplicativo

Esta seção apresenta visualmente a sequência de chamadas de função no modelo de aplicativo do Visual Basic. A próxima seção descreve o objetivo de cada função em detalhes.

O gráfico a seguir mostra a sequência de chamada do modelo de aplicativo em um aplicativo Visual Basic Windows Forms normal. A sequência começa quando o Sub Main procedimento chama o Run método.

Diagrama mostrando a sequência de chamada do Modelo de Aplicativo.

O Visual Basic Application Model também fornece os eventos StartupNextInstance e UnhandledException. Os gráficos a seguir mostram o mecanismo para gerar esses eventos.

Diagrama mostrando o método OnStartupNextInstance gerando o evento StartupNextInstance.

Diagrama mostrando o método OnUnhandledException gerando o evento UnhandledException.

Substituindo os métodos básicos

O Run método define a ordem em que os Application métodos são executados. Por padrão, o Sub Main procedimento para um aplicativo Windows Forms chama o Run método.

Se o aplicativo for um aplicativo normal (aplicativo de várias instâncias) ou a primeira instância de um aplicativo de instância única, o Run método executará os Overridable métodos na seguinte ordem:

  1. OnInitialize. Por padrão, este método define os estilos visuais, estilos de exibição de texto e o principal atual para o encaixe principal do aplicativo (se o aplicativo usa autenticação do Windows) e chama ShowSplashScreen se nem /nosplash nem -nosplash forem usados como argumento de linha de comando.

    A sequência de inicialização do aplicativo será cancelada se essa função retornar False. Isso pode ser útil se houver circunstâncias em que o aplicativo não deve ser executado.

    O OnInitialize método chama os seguintes métodos:

    1. ShowSplashScreen. Determina se o aplicativo tem uma tela inicial definida e, se tiver, exibe a tela inicial em um thread separado.

      O ShowSplashScreen método contém o código que exibe a tela inicial por pelo menos o número de milissegundos especificado pela MinimumSplashScreenDisplayTime propriedade. Para usar esta funcionalidade, deve adicionar a tela inicial à sua aplicação usando o Project Designer (que define a propriedade My.Application.MinimumSplashScreenDisplayTime como dois segundos) ou definir a propriedade My.Application.MinimumSplashScreenDisplayTime num método que substitui o método OnInitialize ou o método OnCreateSplashScreen. Para obter mais informações, consulte MinimumSplashScreenDisplayTime.

    2. OnCreateSplashScreen. Permite que um designer emita código que inicializa a tela inicial.

      Por padrão, esse método não faz nada. Se você selecionar uma tela inicial para seu aplicativo no Visual Basic Project Designer, o designer substituirá o OnCreateSplashScreen método por um método que define a SplashScreen propriedade para uma nova instância do formulário de tela inicial.

  2. OnStartup. Fornece um ponto de extensibilidade para acionar o evento Startup. A sequência de inicialização do aplicativo para se essa função retornar False.

    Por padrão, esse método gera o Startup evento. Se o manipulador de eventos definir a Cancel propriedade do argumento de evento como True, o método retornará False para cancelar a inicialização do aplicativo.

  3. OnRun. Fornece o ponto de partida para quando o aplicativo principal estiver pronto para começar a ser executado, após a inicialização ser concluída.

    Por padrão, antes de entrar no loop de mensagem do Windows Forms, esse método chama os OnCreateMainForm métodos (para criar o formulário principal do aplicativo) e HideSplashScreen (para fechar a tela inicial):

    1. OnCreateMainForm. Fornece uma maneira para um designer emitir código que inicializa o formulário principal.

      Por padrão, esse método não faz nada. No entanto, quando você seleciona um formulário principal para seu aplicativo no Visual Basic Project Designer, o designer substitui o OnCreateMainForm método com um método que define a MainForm propriedade para uma nova instância do formulário principal.

    2. HideSplashScreen. Se o aplicativo tiver uma tela inicial definida e estiver aberta, esse método fechará a tela inicial.

      Por padrão, esse método fecha a tela inicial.

  4. OnStartupNextInstance. Fornece uma maneira de personalizar como um aplicativo de instância única se comporta quando outra instância do aplicativo é iniciada.

    Por padrão, esse método gera o StartupNextInstance evento.

  5. OnShutdown. Fornece um ponto de extensibilidade para acionar o evento Shutdown. Esse método não é executado se ocorrer uma exceção não tratada no aplicativo principal.

    Por padrão, esse método gera o Shutdown evento.

  6. OnUnhandledException. Executado se ocorrer uma exceção não tratada em qualquer um dos métodos listados acima.

    Por padrão, esse método gera o UnhandledException evento desde que um depurador não esteja anexado e o aplicativo esteja manipulando o UnhandledException evento.

Se o aplicativo for um aplicativo de instância única e o aplicativo já estiver em execução, a instância subsequente do aplicativo chamará o OnStartupNextInstance método na instância original do aplicativo e, em seguida, será encerrada.

O OnStartupNextInstance(StartupNextInstanceEventArgs) construtor chama a UseCompatibleTextRendering propriedade para determinar qual mecanismo de renderização de texto usar para os formulários do aplicativo. Por padrão, a UseCompatibleTextRendering propriedade retorna False, indicando que o mecanismo de renderização de texto GDI deve ser usado, que é o padrão no Visual Basic 2005 e versões posteriores. Você pode sobrescrever a propriedade UseCompatibleTextRendering para retornar True, o que indica que o mecanismo de renderização de texto GDI+ seja usado, que é o padrão no Visual Basic .NET 2002 e Visual Basic .NET 2003.

Configurando o aplicativo

Como parte do modelo de aplicativo Visual Basic, a WindowsFormsApplicationBase classe fornece propriedades protegidas que configuram o aplicativo. Essas propriedades devem ser definidas no construtor da classe de implementação.

Em um projeto padrão do Windows Forms, o Project Designer cria código para definir as propriedades com as configurações do designer. As propriedades são usadas somente quando o aplicativo está sendo iniciado; defini-los depois que o aplicativo é iniciado não tem efeito.

Propriedade Determina Configurações no painel de Aplicação do Designer de Projeto
IsSingleInstance Se o aplicativo é executado como um aplicativo de instância única ou de várias instâncias. Caixa de seleção Criar aplicativo de instância única
EnableVisualStyles Se o aplicativo usará estilos visuais que correspondem ao Windows XP. Caixa de seleção Ativar estilos visuais do XP
SaveMySettingsOnExit Se o aplicativo salvar automaticamente as alterações nas configurações do usuário ao encerrar. Caixa de seleção Salvar My.Settings no Desligamento
ShutdownStyle O que faz com que o aplicativo seja encerrado, como quando o formulário de inicialização é fechado ou quando o último formulário é fechado. Lista de modos de desligamento

Ver também