Como: Tornar invisível um formulário de inicialização do Windows

Para tornar o formulário principal de um aplicativo baseado no WIndws invisível quando o aplicativo for iniciado, você deverá mover lógica de inicialização do aplicativo para uma classe separada. Não é possível simplesmente definir sua property Visible como false.

Após você ter separado o tempo de vida do aplicativo a partir de tempo de vida do formulário, você pode tornar os formulários visíveis (e invisível), porque o aplicativo será encerrado quando você "fechar" a classe que foi usada para inicialização do aplicativo.

ObservaçãoObservação

Como um módulo é invisível quando seu código está sendo executado, o procedimento que segue inclui uma etapa para adicionar um caixa de mensagem no módulo de inicialização para simplesmente demonstrar que o aplicativo está sendo executado.

Para definir um formulário para ser invisível ao seu início

  1. Siga um destes procedimentos:

    1. Em Visual Basic, adicione um módulo para a sua aplicação baseada no Windows, clicando com o botão direito do mouse no projeto e selecionando Add Module.

    2. Em Visual C#, crie uma nova classe.

    3. Em Visual C++, abra Form1.cpp da sua aplicação baseado em Windows.

      Para obter mais informações sobre criar uma aplicação baseada em Windows coonsulte Como: Crie um novo projeto de aplicativo do Windows Forms.

  2. Dentro do módulo ou classe, desenvolva uma sub-rotina Main que pode atuar como o objeto de inicialização para o projeto.

    O exemplo de código a seguir mostra como você pode abordar esse.

    Sub Main()
       ' Instantiate a new instance of Form1.
       Dim f1 as New Form1()
       ' Display a messagebox. This shows the application is running, 
       ' yet there is nothing shown to the user. This is the point at 
       ' which you customize your form.
       System.Windows.Forms.MessageBox.Show( _
          "The application is running now, but no forms have been shown.")
       ' Customize the form.
       f1.Text = "Running Form"
       ' Show the instance of the form modally.
       f1.ShowDialog()
    End Sub
    
    // All methods must be contained in a class.
    // This class is added to the namespace containing the Form1 class.
    class MainApplication
    {
       public static void Main()
       {
          // Instantiate a new instance of Form1.
          Form1 f1 = new Form1();
          // Display a messagebox. This shows the application 
          // is running, yet there is nothing shown to the user. 
          // This is the point at which you customize your form.
          System.Windows.Forms.MessageBox.Show("The application "
             + "is running now, but no forms have been shown.");
          // Customize the form.
          f1.Text = "Running Form";
          // Show the instance of the form modally.
          f1.ShowDialog();
       }
    }
    
    // You can use this Mian method in the Program class (Program.jsl):
    public static void main(String[] args)
    {
       // Instantiate a new instance of Form1.
       Form1 f1 = new Form1();
       // Display a messagebox. This shows the application 
       // is running, yet there is nothing shown to the user. 
       // This is the point at which you customize your form.
       System.Windows.Forms.MessageBox.Show("The application "
          + "is running now, but no forms have been shown.");
       // Customize the form.
       f1.set_Text("Running Form");
       // Show the instance of the form modally.
       f1.ShowDialog();
    }
    
    void Main()
    {
       // Instantiate a new instance of Form1.
       Form1^ f1 = gcnew Form1();
       // Display a messagebox. This shows the application 
       // is running, yet there is nothing shown to the user. 
       // This is the point at which you customize your form.
       System::Windows::Forms::MessageBox::Show(
          "The application is running now, "
          "but no forms have been shown.");
       // Customize the form.
       f1->Text = "Running Form";
       // Show the instance of the form modally.
       f1->ShowDialog();
    }
    
    ObservaçãoObservação

    A caixa de mensagem no exemplo de código anterior é especificado com um namespace totalmente qualificado porque o módulo criado, diferentemente de um formulário Windows padrão, não importa quaisquer namespaces por padrão. Para obter mais informações sobre como importar os namespaces, consulte referências e a declaração Imports (Visual Basic), o usando a diretiva (referência de C#) (Visual C#), ou o using Directive (C++) (Visual C++). Application.Run()será iniciado o bombardeamento de mensagens, que é vital para o comportamento de determinados aplicativos e pode afetar o comportamento de formulário certas épocas do ciclo de vida do aplicativo, como no desligamento. Para obter mais informações, consulte Método Application. Run.

  3. Altere o objeto de inicialização para o projeto a ser Sub Main INSTEAD OF Form1.

    Para Visual C#,defina o objeto de inicialização com o nome da classe no exemplo de código anterior. Para obter mais informações, consulte Como: Escolha o formulário de inicialização em um aplicativo Windows, bem como Como: Alterar o objeto de inicialização para um aplicativo (Visual Basic).

    ObservaçãoObservação

    Ignore esta etapa para aplicativos baseados no Windows em Visual C++.

  4. Pressione F5 para executar o projeto.

    Quando o aplicativo é executado, o código de Main() executa primeiro enquanto a instância de Form1 perdura, oculto, até que o código da apresentação é executado. Isso permite que você faça tudo o que você gosta dentro de instância de Form1 no segundo plano sem o conhecimento do usuário.

Consulte também

Tarefas

Como: Exibir Modal e sem janela restrita Windows Forms

Como: Definir o local da tela do Windows Forms

Outros recursos

Mudando a Aparência dos Formulários do Windows