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çã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
Siga um destes procedimentos:
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.
Em Visual C#, crie uma nova classe.
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.
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 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.
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ção Ignore esta etapa para aplicativos baseados no Windows em Visual C++.
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