Vue d'ensemble du modèle d'application Visual Basic

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. 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 l’interception des exceptions non prises en charge. Il prend également en charge le développement d’applications mono-instance. Le modèle d’application est extensible. Les développeurs qui ont besoin de plus de contrôle peuvent donc personnaliser ses méthodes substituables.

Utilisations pour le modèle d’application

Une application classique doit effectuer des tâches quand elle démarre et s’arrête. Par exemple, quand l’application démarre, elle peut afficher un écran de démarrage, établir des connexions de base de données, charger un état enregistré, etc. Quand l’application s’arrête, elle peut fermer les connexions de base de données, enregistrer l’état actuel, etc. De plus, l’application peut exécuter du code spécifique quand elle se ferme de manière inattendue, par exemple durant une exception non prise en charge.

Le modèle d’application Visual Basic facilite la création d’une application mono-instance. Une application mono-instance diffère d’une application normale dans la mesure où une seule instance de l’application peut s’exécuter à la fois. En cas de tentative de lancement d’une autre instance d’une application mono-instance, l’instance d’origine reçoit une notification, via l’événement StartupNextInstance, lui indiquant qu’une autre tentative de lancement a été effectuée. La notification inclut les arguments de ligne de commande de l’instance suivante. L’instance suivante de l’application est ensuite fermée avant qu’une initialisation puisse avoir lieu.

Une application mono-instance démarre et vérifie s’il s’agit de la première instance ou d’une instance suivante de l’application :

  • S’il s’agit de la première instance, elle démarre comme d’habitude.

  • Chaque tentative suivante de démarrage de l’application, durant l’exécution de la première instance, entraîne un comportement très différent. La tentative suivante notifie la première instance à propos des arguments de ligne de commande, puis se ferme immédiatement. La première instance gère l’événement StartupNextInstance pour déterminer les arguments de ligne de commande de l’instance suivante, puis continue à s’exécuter.

    Ce diagramme montre comment une instance suivante notifie la première instance :

    Diagram that shows a single instance application image.

En gérant l’événement StartupNextInstance, vous pouvez contrôler le comportement de votre application mono-instance. Par exemple, Microsoft Outlook s’exécute généralement en tant qu’application mono-instance. Quand Outlook est en cours d’exécution et que vous tentez de redémarrer Outlook, le focus se déplace sur l’instance d’origine, mais aucune autre instance ne s’ouvre.

Événements dans le modèle d’application

Les événements suivants se trouvent dans le modèle d’application :

  • Démarrage de l’application. L’application déclenche l’événement Startup au démarrage. En gérant cet événement, vous pouvez ajouter du code qui initialise l’application avant le chargement du formulaire principal. L’événement Startup permet également d’annuler l’exécution de l’application durant cette phase du processus de démarrage, le cas échéant.

    Vous pouvez configurer l’application pour afficher un écran de démarrage pendant l’exécution du code de démarrage de l’application. Par défaut, le modèle d’application supprime l’écran de démarrage quand l’argument de ligne de commande /nosplash ou -nosplash est utilisé.

  • Applications mono-instance. L’événement StartupNextInstance se déclenche quand une instance suivante d’une application mono-instance démarre. L’événement passe les arguments de ligne de commande de l’instance suivante.

  • Exceptions non prises en charge. Si l’application rencontre une exception non prise en charge, elle déclenche l’événement UnhandledException. Le gestionnaire de cet événement peut examiner l’exception et déterminer si l’exécution doit se poursuivre.

    L’événement UnhandledException ne se déclenche pas dans certaines circonstances. Pour plus d’informations, consultez UnhandledException.

  • Changements liés à la connectivité réseau. Si la disponibilité réseau de l’ordinateur change, l’application déclenche l’événement NetworkAvailabilityChanged.

    L’événement NetworkAvailabilityChanged ne se déclenche pas dans certaines circonstances. Pour plus d’informations, consultez NetworkAvailabilityChanged.

  • Arrêt de l’application. L’application fournit l’événement Shutdown pour signaler le moment où elle est sur le point de s’arrêter. Dans ce gestionnaire d’événements, vous pouvez vérifier que les opérations que votre application doit effectuer (fermeture et enregistrement, par exemple) sont effectuées. Vous pouvez configurer votre application pour qu’elle s’arrête à la fermeture du formulaire principal, ou uniquement à la fermeture de tous les formulaires.

Disponibilité

Par défaut, le modèle d’application Visual Basic est disponible pour les projets Windows Forms. Si vous configurez l’application pour utiliser un autre objet de démarrage, ou si vous démarrez le code de l’application avec un Sub Main personnalisé, cet objet ou cette classe devra peut-être fournir une implémentation de la classe WindowsFormsApplicationBase pour utiliser le modèle d’application. Pour plus d’informations sur le changement de l’objet de démarrage, consultez Application, page du Concepteur de projet (Visual Basic).

Voir aussi