Extension du modèle d'application Visual Basic

Vous pouvez ajouter des fonctionnalités au modèle d’application en remplaçant les membres Overridable de la classe WindowsFormsApplicationBase. Cette technique vous permet de personnaliser le comportement du modèle d’application et d’ajouter des appels à vos propres méthodes au démarrage et à l’arrêt de l’application.

Présentation visuelle du modèle d’application

Cette section présente visuellement la séquence d’appels de fonction dans le modèle d’application Visual Basic. La section suivante décrit en détail le rôle de chaque fonction.

Le graphisme suivant montre la séquence d’appels du modèle d’application dans une application Windows Forms Visual Basic normale. La séquence commence quand la procédure Sub Main appelle la méthode Run.

Diagram showing the Application Model call sequence.

Le modèle d’application Visual Basic fournit également les événements StartupNextInstance et UnhandledException. Les graphismes suivants montrent le mécanisme de déclenchement de ces événements.

Diagram showing the OnStartupNextInstance method raising the StartupNextInstance event.

Diagram showing the OnUnhandledException method raising the UnhandledException event.

Remplacement des méthodes de base

La méthode Run définit l’ordre dans lequel les méthodes Application s’exécutent. Par défaut, la procédure Sub Main d’une application Windows Forms appelle la méthode Run.

Si l’application est une application normale (application à plusieurs instances) ou la première instance d’une application à instance unique, la méthode Run exécute les méthodes Overridable dans l’ordre suivant :

  1. OnInitialize. Par défaut, cette méthode définit les styles visuels, les styles d’affichage de texte et le principal actuel pour le thread d’application principal (si l’application utilise l’authentification Windows) et appelle ShowSplashScreen si ni /nosplash ni -nosplash ne sont utilisés comme argument de ligne de commande.

    La séquence de démarrage de l’application est annulée si cette fonction retourne False. Cela peut être utile dans des circonstances où l’application ne doit pas s’exécuter.

    La méthode OnInitialize appelle les méthodes suivantes :

    1. ShowSplashScreen. Détermine si un écran de démarrage est défini pour l’application et, si c’est le cas, affiche l’écran de démarrage sur un thread distinct.

      La méthode ShowSplashScreen contient le code qui affiche l’écran de démarrage pendant le nombre de millisecondes (au minimum) spécifié par la propriété MinimumSplashScreenDisplayTime. Pour utiliser cette fonctionnalité, vous devez ajouter l’écran de démarrage à votre application à l’aide du Concepteur de projet (qui définit la propriété My.Application.MinimumSplashScreenDisplayTime sur deux secondes) ou définir la propriété My.Application.MinimumSplashScreenDisplayTime dans une méthode qui remplace la méthode OnInitialize ou OnCreateSplashScreen. Pour plus d’informations, consultez MinimumSplashScreenDisplayTime.

    2. OnCreateSplashScreen. Permet à un concepteur d’émettre du code qui initialise l’écran de démarrage.

      Par défaut, cette méthode ne fait rien. Si vous sélectionnez un écran de démarrage pour votre application dans le Concepteur de projet Visual Basic, le concepteur remplace la méthode OnCreateSplashScreen par une méthode qui définit la propriété SplashScreen sur une nouvelle instance du formulaire d’écran de démarrage.

  2. OnStartup. Fournit un point d’extension pour déclencher l’événement Startup. La séquence de démarrage de l’application s’arrête si cette fonction retourne False.

    Par défaut, cette méthode déclenche l’événement Startup. Si le gestionnaire d’événements définit la propriété Cancel de l’argument de l’événement sur True, la méthode retourne False pour annuler le démarrage de l’application.

  3. OnRun. Fournit le point de départ lorsque l'application principale est prête à commencer son exécution, une fois l'initialisation faite.

    Par défaut, avant d’entrer dans la boucle de message Windows Forms, cette méthode appelle les méthodes OnCreateMainForm (pour créer le formulaire principal de l’application) et HideSplashScreen (pour fermer l’écran de démarrage) :

    1. OnCreateMainForm. Fournit à un concepteur un moyen d’émettre du code qui initialise le formulaire principal.

      Par défaut, cette méthode ne fait rien. Cependant, quand vous sélectionnez un formulaire principal pour votre application dans le Concepteur de projet Visual Basic, le concepteur remplace la méthode OnCreateMainForm par une méthode qui définit la propriété MainForm sur une nouvelle instance du formulaire principal.

    2. HideSplashScreen. Si un écran de démarrage est défini pour l’application et qu’il est ouvert, cette méthode ferme l’écran de démarrage.

      Par défaut, cette méthode ferme l’écran de démarrage.

  4. OnStartupNextInstance. Permet de personnaliser le comportement d’une application à instance unique au démarrage d’une autre instance de l’application.

    Par défaut, cette méthode déclenche l’événement StartupNextInstance.

  5. OnShutdown. Fournit un point d’extension pour déclencher l’événement Shutdown. Cette méthode ne s’exécute pas si une exception non prise en charge se produit dans l’application principale.

    Par défaut, cette méthode déclenche l’événement Shutdown.

  6. OnUnhandledException. S’exécute si une exception non prise en charge se produit dans l’une des méthodes listées ci-dessus.

    Par défaut, cette méthode déclenche l’événement UnhandledException tant qu’un débogueur n’est pas attaché et que l’application gère l’événement UnhandledException.

Si l’application est une application à instance unique et que l’application est déjà en cours d’exécution, l’instance suivante de l’application appelle la méthode OnStartupNextInstance sur l’instance d’origine de l’application, puis se ferme.

Le constructeur OnStartupNextInstance(StartupNextInstanceEventArgs) appelle la propriété UseCompatibleTextRendering pour déterminer quel moteur de rendu de texte utiliser pour les formulaires de l’application. Par défaut, la propriété UseCompatibleTextRendering retourne False, indiquant que le moteur de rendu de texte GDI doit être utilisé (comportement par défaut dans Visual Basic 2005 et les versions ultérieures). Vous pouvez remplacer la propriété UseCompatibleTextRendering pour que True soit retourné, indiquant que le moteur de rendu de texte GDI+ doit être utilisé (comportement par défaut dans Visual Basic .NET 2002 et Visual Basic .NET 2003).

Configuration de l’application

Dans le cadre du modèle d’application Visual Basic, la classe WindowsFormsApplicationBase fournit des propriétés protégées qui configurent l’application. Ces propriétés doivent être définies dans le constructeur de la classe d’implémentation.

Dans un projet Windows Forms par défaut, le Concepteur de projet crée du code pour définir les propriétés avec les paramètres du concepteur. Les propriétés sont utilisées uniquement au démarrage de l’application. La définition de ces propriétés après le démarrage de l’application n’a aucun effet.

Propriété Détermine Paramètre dans le volet Application du Concepteur de projet
IsSingleInstance Si l’application s’exécute comme application à instance unique ou à plusieurs instances. Case à cocher Application à instance unique
EnableVisualStyles Si l’application utilise des styles visuels correspondant à Windows XP. Case à cocher Activer les styles visuels XP
SaveMySettingsOnExit Si l’application enregistre automatiquement les modifications de paramètres utilisateur de l’application à la fermeture de l’application. Case à cocher Enregistrer My.Settings à l’arrêt
ShutdownStyle Ce qui provoque l’arrêt de l’application, par exemple quand le formulaire de démarrage se ferme ou quand le dernier formulaire se ferme. Liste Mode d’arrêt

Voir aussi