Comment : définir l'invisibilité d'un formulaire de démarrage Windows
Mise à jour : novembre 2007
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.
Remarque : |
---|
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 zone 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
Effectuez l'une des actions suivantes :
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.
Dans Visual C#, créez une nouvelle classe.
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.
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(); }
Remarque : 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 d'espaces de noms, consultez Références et l'instruction Imports (Visual Basic), 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 à certains moments au cours du cycle de vie de l'application, par exemple à l'arrêt. Pour plus d'informations, consultez Application.Run, méthode.
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).
Remarque : Ignorez cette étape pour les applications Windows en Visual C++.
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