Partager via


Comment : définir l'invisibilité d'un formulaire de démarrage Windows

Pour rendre invisible le formulaire principal d'une application Windows à son démarrage, vous devez déplacer la logique de démarrage de l'application vers une classe distincte. Il ne suffit pas d'attribuer à sa propriété Visible la valeur false.

Une fois que vous avez séparé la durée de vie de l'application de la durée de vie du formulaire, vous pouvez rendre des formulaires visibles (ou invisibles), car l'application prendra fin lors de la « fermeture » de la classe utilisée pour son démarrage.

Notes

Dans la mesure où un module est invisible lors de l'exécution de son code, la procédure qui suit comprend une étape destinée à ajouter une boîte de message au module de démarrage simplement pour montrer que l'application est en cours d'exécution.

Pour configurer l'invisibilité d'un formulaire à son démarrage

  1. Effectuez l'une des actions suivantes :

    1. En Visual Basic, ajoutez un module à votre application Windows en cliquant avec le bouton droit sur le projet et en sélectionnant Ajouter un module.

    2. Dans Visual C#, créez une nouvelle classe.

    3. Dans Visual C++, ouvrez le fichier Form1.cpp de votre application Windows.

      Pour plus d'informations sur la création d'une application Windows, consultez Comment : créer un projet d'Application Windows Forms.

  2. Dans le module ou la classe, développez une sous-routine Main pouvant servir d'objet de démarrage du projet.

    L'exemple de code ci-dessous illustre l'une des approches possibles.

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

    Notes

    Le message dans l'exemple de code précédent est spécifié avec un espace de noms qualifié complet parce que le module créé, à la différence d'un Windows Form standard, n'importe pas les espaces de noms par défaut. Pour plus d'informations sur l'importation des espaces de noms, consultez Références et l'instruction Imports (Visual Basic) (page éventuellement en anglais), using, directive (référence C#) (Visual C#) ou using Directive (C++) (Visual C++). Application.Run() démarrera la pompe de messages, ce qui est vital pour le comportement de certaines applications et peut affecter le comportement du formulaire lors de certaines phases du cycle de vie d'application, par exemple lors de l'arrêt. Pour plus d'informations, consultez Application.Run, méthode.

  3. Remplacez l'objet de démarrage du projet Form1 par Sub Main.

    Pour Visual C#, affectez à l'objet de démarrage le nom de la classe dans l'exemple de code précédent. Pour plus d'informations, consultez Comment : choisir le formulaire de démarrage dans une application Windows et Comment : modifier l'objet de démarrage pour une application (Visual Basic).

    Notes

    Ignorez cette étape pour les applications Windows en Visual C++.

  4. Appuyez sur F5 pour exécuter le projet.

    Lorsque l'application s'exécute, c'est d'abord le code dans Main() qui est exécuté tandis que l'instance de Form1 reste cachée jusqu'au moment de l'exécution du code destiné à l'afficher. Vous pouvez ainsi faire ce que vous voulez dans l'instance de Form1 en arrière-plan sans que l'utilisateur le sache.

Voir aussi

Tâches

Comment : afficher des Windows Forms modaux et non modaux

Comment : définir l'emplacement à l'écran des Windows Forms

Autres ressources

Modification de l'apparence des Windows Forms