Condividi tramite


Procedura: rendere invisibile un form di avvio di Windows

Aggiornamento: novembre 2007

Per rendere invisibile il form principale di un'applicazione Windows all'avvio dell'applicazione, è necessario spostare la logica di avvio dell'applicazione in una classe separata. Non è sufficiente impostarne la proprietà Visiblesu false.

Dopo avere separato la durata dell'applicazione da quella del form, è possibile rendere visibili e invisibili i form, dato che l'applicazione termina quando si chiude la classe utilizzata per l'avvio dell'applicazione.

Nota:

Poiché un modulo è invisibile quando è in esecuzione il relativo codice, la procedura riportata di seguito include un passaggio per l'aggiunta di una finestra di messaggio al modulo di avvio, che consente di dimostrare semplicemente che l'applicazione è in esecuzione.

Per impostare l'invisibilità di un form in fase iniziale

  1. Effettuare una delle seguenti operazioni:

    1. In Visual Basic aggiungere un modulo all'applicazione Windows facendo clic con il pulsante destro del mouse sul progetto e scegliendo Aggiungi modulo.

    2. In Visual C# creare una nuova classe.

    3. In Visual C++ aprire Form1.cpp dell'applicazione per Windows.

      Per ulteriori informazioni sulla creazione di un'applicazione per Windows, vedere Procedura: creare un progetto applicazione Windows.

  2. Nel modulo o nella classe creare una subroutine Main che possa fungere da oggetto di avvio per il progetto.

    Nel codice riportato di seguito viene illustrato come effettuare tale operazione.

    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();
    }
    
    Nota:

    La finestra di messaggio nel codice sopra riportato viene specificata con uno spazio dei nomi completo poiché, a differenza dei Windows Form standard, nel modulo creato non è possibile importare spazi dei nomi per impostazione predefinita. Per ulteriori informazioni sull'importazione degli spazi dei nomi, vedere Riferimenti e istruzione Imports (Visual Basic), la Direttiva using (Riferimenti per C#) (Visual C#) o la using Directive (C++) (Visual C++). Application.Run() avvierà il message pump, che costituisce un elemento essenziale per alcune applicazioni e che può influenzare il comportamento dei form in determinate fasi del ciclo dell'applicazione, ad esempio l'arresto. Per ulteriori informazioni, vedere Metodo Application.Run.

  3. Modificare l'oggetto di avvio del progetto in modo che sia Sub Main anziché Form1.

    Per Visual C#, impostare l'oggetto di avvio sul nome della classe dell'esempio di codice precedente. Per le ulteriori informazioni, vedere Procedura: scegliere il form di avvio in un'applicazione Windows e Procedura: cambiare l'oggetto di avvio per un'applicazione (Visual Basic).

    Nota:

    Ignorare questo passaggio per applicazioni per Windows in Visual C++.

  4. Premere F5 per eseguire il progetto.

    Al momento dell'esecuzione dell'applicazione viene eseguito per primo il codice in Main() mentre l'istanza di Form1, nascosta, rimane in attesa dell'esecuzione del codice che ne consentirà la visualizzazione. In questo modo è possibile utilizzare in background l'istanza di Form1 senza che l'utente ne sia informato.

Vedere anche

Attività

Procedura: visualizzare Windows Form modali e non

Procedura: impostare la posizione dello schermo in Windows Form

Altre risorse

Modifica dell'aspetto di Windows Form