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.
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.
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 :
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 :
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.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.
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 retourneFalse
.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 retourneFalse
pour annuler le démarrage de l’application.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) etHideSplashScreen
(pour fermer l’écran de démarrage) :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.
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.
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.
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.
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 |