Vue d'ensemble du modèle d'application Visual BasicOverview of the Visual Basic Application Model

Visual Basic fournit un modèle bien défini pour contrôler le comportement des applications Windows Forms : le modèle d’application Visual Basic.Visual Basic provides a well-defined model for controlling the behavior of Windows Forms applications: the Visual Basic Application model. Ce modèle comprend des événements pour la gestion du démarrage et de l’arrêt de l’application, ainsi que des événements pour intercepter les exceptions non gérées.This model includes events for handling the application's startup and shutdown, as well as events for catching unhandled exceptions. Il prend également en charge le développement d’applications à instance unique.It also provides support for developing single-instance applications. Le modèle d’application est extensible, de sorte que les développeurs qui ont besoin de davantage de contrôle peuvent personnaliser ses méthodes substituables.The application model is extensible, so developers that need more control can customize its overridable methods.

Utilisations du modèle d’applicationUses for the Application Model

Une application classique doit effectuer des tâches au démarrage et à l’arrêt.A typical application needs to perform tasks when it starts up and shuts down. Par exemple, lorsqu’il démarre, l’application peut afficher un écran de démarrage, créer des connexions de base de données, charger un état enregistré, et ainsi de suite.For example, when it starts up, the application can display a splash screen, make database connections, load a saved state, and so on. Lorsque l’application s’arrête, elle peut fermer les connexions à la base de données, enregistrer l’état actuel, et ainsi de suite.When the application shuts down, it can close database connections, save the current state, and so on. En outre, l’application peut exécuter du code spécifique lorsque l’application s’arrête de manière inattendue, par exemple pendant une exception non gérée.In addition, the application can execute specific code when the application shuts down unexpectedly, such as during an unhandled exception.

Le modèle d’application Visual Basic permet de créer facilement une application à instance unique .The Visual Basic Application model makes it easy to create a single-instance application. Une application à instance unique diffère d’une application normale dans la mesure où une seule instance de l’application peut être exécutée à la fois.A single-instance application differs from a normal application in that only one instance of the application can be running at a time. Une tentative de lancement d’une autre instance d’une application à instance unique entraîne la notification de l’instance d’origine, au moyen de l’événement StartupNextInstance, qu’une autre tentative de lancement a été effectuée.An attempt to launch another instance of a single-instance application results in the original instance being notified—by means of the StartupNextInstance event—that another launch attempt was made. La notification comprend les arguments de ligne de commande de l’instance suivante.The notification includes the subsequent instance's command-line arguments. L’instance suivante de l’application est ensuite fermée avant qu’une initialisation puisse se produire.The subsequent instance of the application is then closed before any initialization can occur.

Une application à instance unique démarre et vérifie s’il s’agit de la première instance ou d’une instance suivante de l’application :A single-instance application starts and checks whether it is the first instance or a subsequent instance of the application:

  • S’il s’agit de la première instance, elle démarre comme d’habitude.If it is the first instance, it starts as usual.

  • Chaque nouvelle tentative de démarrage de l’application, pendant l’exécution de la première instance, produit un comportement très différent.Each subsequent attempt to start the application, while the first instance runs, results in very different behavior. La tentative suivante notifie la première instance des arguments de ligne de commande, puis se ferme immédiatement.The subsequent attempt notifies the first instance about the command-line arguments, and then immediately exits. La première instance gère l’événement StartupNextInstance pour déterminer les arguments de ligne de commande de l’instance suivante, et continue à s’exécuter.The first instance handles the StartupNextInstance event to determine what the subsequent instance's command-line arguments were, and continues to run.

    Ce diagramme montre comment une instance suivante signale la première instance :This diagram shows how a subsequent instance signals the first instance:

    Diagramme illustrant une image d’application d’instance unique.

En gérant l’événement StartupNextInstance, vous pouvez contrôler le comportement de votre application à instance unique.By handling the StartupNextInstance event, you can control how your single-instance application behaves. Par exemple, Microsoft Outlook s’exécute généralement comme une application à instance unique ; Quand Outlook est en cours d’exécution et que vous tentez de redémarrer Outlook, le focus se déplace vers l’instance d’origine, mais une autre instance ne s’ouvre pas.For example, Microsoft Outlook typically runs as a single-instance application; when Outlook is running and you attempt to start Outlook again, focus shifts to the original instance but another instance does not open.

Événements dans le modèle d’applicationEvents in the Application Model

Les événements suivants se trouvent dans le modèle d’application :The following events are found in the application model:

  • Démarragede l’application.Application startup. L’application déclenche l’événement Startup au démarrage.The application raises the Startup event when it starts. En gérant cet événement, vous pouvez ajouter du code qui initialise l’application avant le chargement du formulaire principal.By handling this event, you can add code that initializes the application before the main form is loaded. L’événement Startup permet également d’annuler l’exécution de l’application au cours de cette phase du processus de démarrage, si vous le souhaitez.The Startup event also provides for canceling execution of the application during that phase of the startup process, if desired.

    Vous pouvez configurer l’application pour qu’elle affiche un écran de démarrage pendant l’exécution du code de démarrage de l’application.You can configure the application to show a splash screen while the application startup code runs. Par défaut, le modèle d’application supprime l’écran de démarrage lorsque l' /nosplash ou -nosplash argument de ligne de commande est utilisé.By default, the application model suppresses the splash screen when either the /nosplash or -nosplash command-line argument is used.

  • Applications à instance unique.Single-instance applications. L’événement StartupNextInstance est déclenché lors du démarrage d’une instance suivante d’une application à instance unique.The StartupNextInstance event is raised when a subsequent instance of a single-instance application starts. L’événement passe les arguments de ligne de commande de l’instance suivante.The event passes the command-line arguments of the subsequent instance.

  • Exceptions non gérées.Unhandled exceptions. Si l’application rencontre une exception non gérée, elle déclenche l’événement UnhandledException.If the application encounters an unhandled exception, it raises the UnhandledException event. Votre gestionnaire pour cet événement peut examiner l’exception et déterminer s’il faut continuer l’exécution.Your handler for that event can examine the exception and determine whether to continue execution.

    L’événement UnhandledException n’est pas déclenché dans certaines circonstances.The UnhandledException event is not raised in some circumstances. Pour plus d'informations, consultez UnhandledException.For more information, see UnhandledException.

  • Modifications de la connectivité réseau.Network-connectivity changes. En cas de modification de la disponibilité du réseau de l’ordinateur, l’application déclenche l’événement NetworkAvailabilityChanged.If the computer's network availability changes, the application raises the NetworkAvailabilityChanged event.

    L’événement NetworkAvailabilityChanged n’est pas déclenché dans certaines circonstances.The NetworkAvailabilityChanged event is not raised in some circumstances. Pour plus d'informations, consultez NetworkAvailabilityChanged.For more information, see NetworkAvailabilityChanged.

  • Arrêtde l’application.Application shut down. L’application fournit l’événement Shutdown pour signaler le moment où il est sur le paragraphe d’être arrêté.The application provides the Shutdown event to signal when it is about to shut down. Dans ce gestionnaire d’événements, vous pouvez vous assurer que les opérations que votre application doit effectuer (fermeture et enregistrement, par exemple) sont terminées.In that event handler, you can make sure that the operations your application needs to perform—closing and saving, for example—are completed. Vous pouvez configurer votre application pour qu’elle s’arrête lorsque le formulaire principal se ferme ou s’arrête uniquement lorsque toutes les formes se ferment.You can configure your application to shut down when the main form closes, or to shut down only when all forms close.

DisponibilitéAvailability

Par défaut, le modèle d’application Visual Basic est disponible pour les projets Windows Forms.By default, the Visual Basic Application model is available for Windows Forms projects. Si vous configurez l’application pour utiliser un autre objet de démarrage ou si vous démarrez le code d’application avec une Sub Mainpersonnalisée, cet objet ou cette classe devra peut-être fournir une implémentation de la classe WindowsFormsApplicationBase pour utiliser le modèle d’application.If you configure the application to use a different startup object, or start the application code with a custom Sub Main, then that object or class may need to provide an implementation of the WindowsFormsApplicationBase class to use the application model. Pour plus d’informations sur la modification de l’objet de démarrage, consultez page application, concepteur de projets (Visual Basic).For information about changing the startup object, see Application Page, Project Designer (Visual Basic).

Voir aussiSee also