Compartilhar via


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

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ção:

Porque um mod ule é invisível quando seu código está sendo executado, o procedimento a seguir inclui uma etapa para adicionar uma caixa de mensagem para o 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: Criar um projeto de aplicativos do Windows.

  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çã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 as declarações Imports (Visual Basic), o usando diretiva (Referência C#) (Visual C#), ou o Using Directive (C++) (Visual C++). Application.Run() será iniciada a transferência de mensagem, que é vital para o comportamento de alguns aplicativos e pode afetar comportamento do formulário durante determinados períodos no ciclo de vida do aplicativo, sistema autônomo no desligado. Para obter mais informações, consulte Application.Run Method.

  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: Escolher o formulário de inicialização em um aplicativos do Windows, bem como Como: Alterar o objeto de inicialização para um aplicativo (Visual Basic).

    Observação:

    Ignorar esta etapa para o aplicativo baseado no Windows s 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: conjunto o local da tela do Windows Forms

Outros recursos

Mudando a Aparência dos Formulários do Windows