Partager via


Extension du modèle d'application Visual Basic

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

Vue d'ensemble visuelle du modèle d'application

Cette section présente visuellement la séquence des appels de fonction dans le modèle d'application Visual Basic. La section suivante décrit en détail l'objectif de chaque fonction.

Le graphique suivant illustre la séquence des appels du modèle d'application dans une application Windows Forms Visual Basic normale. La séquence commence lorsque la procédure Sub Main appelle la méthode Run.

Modèle d'application Visual Basic -- Exécution

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

Modèle d'application Visual Basic -- Instance suivanteException non gérée du modèle d'application Visual Basic

Substitution 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 multi-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 du texte et l'entité de sécurité en cours pour le thread d'application principal (si l'application utilise l'authentification Windows) et appelle ShowSplashScreen si ni /nosplash ni -nosplash n'est utilisé 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 si l'application ne doit pas s'exécuter dans certaines circonstances.

    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, le cas échéant, l'affiche dans un thread séparé.

      La méthode ShowSplashScreen contient le code qui affiche l'écran de démarrage pendant au moins le nombre de millisecondes qui est spécifié par la propriété MinimumSplashScreenDisplayTime. Pour utiliser ces fonctionnalités, vous devez ajouter l'écran de démarrage à votre application à l'aide du Concepteur de projets (qui affecte à la propriété My.Application.MinimumSplashScreenDisplayTime une durée de deux secondes) ou définir la propriété My.Application.MinimumSplashScreenDisplayTime dans une méthode qui substitue 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 projets de Visual Basic, le concepteur substitue la méthode OnCreateSplashScreen par une autre qui définit la propriété SplashScreen à une nouvelle instance du formulaire d'écran de démarrage.

  2. OnStartup. Fournit un point d'extensibilité 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 affecte à la propriété Cancel de l'argument d'événement la valeur 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. Permet à un concepteur d'émettre du code qui initialise le formulaire principal.

      Par défaut, cette méthode ne fait rien. Toutefois, lorsque vous sélectionnez un formulaire principal pour votre application dans le Concepteur de projets de Visual Basic, le concepteur substitue la méthode OnCreateMainForm à une méthode qui définit la propriété MainForm comme étant 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 le ferme.

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

  4. OnStartupNextInstance. Permet de personnaliser le comportement d'une application à instance unique lorsqu'une autre instance de l'application démarre.

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

  5. OnShutdown. Fournit un point d'extensibilité pour déclencher l'événement Shutdown. Cette méthode ne s'exécute pas si une exception non gérée se produit dans l'application principale.

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

  6. OnUnhandledException. Méthode exécutée si une exception non gérée se produit dans l'une des méthodes répertorié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 qu'elle est déjà en cours d'exécution, son instance suivante appelle la méthode OnStartupNextInstance de l'instance d'origine de l'application, puis se ferme.

Le constructeur WindowsFormsApplicationBase appelle la propriété UseCompatibleTextRendering pour déterminer le moteur de rendu de texte à utiliser pour les formulaires de l'application. Par défaut, la propriété UseCompatibleTextRendering retourne la valeur False, ce qui indique que le moteur de rendu de texte GDI doit être utilisé (il s'agit de la valeur par défaut dans Visual Basic 2005). Vous pouvez substituer la propriété UseCompatibleTextRendering pour retourner la valeur True, ce qui indique que le moteur de rendu de texte GDI+ doit être utilisé (il s'agit de la valeur par défaut dans Visual Basic .NET 2002 et Visual Basic .NET 2003).

Configuration de l'application

Dans le 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 projets 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 lorsque le démarrage de l'application est en cours ; il ne sert à rien de les utiliser après le démarrage de l'application.

Propriété

Détermine

Définition dans le volet d'application du Concepteur de projets

IsSingleInstance

Si l'application s'exécute comme une application à instance unique ou comme une application multi-instances.

Case à cocher deDéfinissez la demande d'instance unique

EnableVisualStyles

Si l'application utilise les styles visuels qui correspondent à Windows XP.

Case à cocher deActivez les styles visuels XP

SaveMySettingsOnExit

Si l'application enregistre automatiquement les modifications des paramètres utilisateur lorsqu'elle se ferme.

Case à cocher deEnregistrez My.Settings sur l'arrêt

ShutdownStyle

Ce qui provoque l'arrêt de l'application, par exemple lorsque le formulaire de démarrage se ferme ou lorsque le dernier formulaire se ferme.

Liste demode d'arrêt

Voir aussi

Référence

ApplicationBase

Startup

StartupNextInstance

UnhandledException

Shutdown

NetworkAvailabilityChanged

WindowsFormsApplicationBase

Application, page du Concepteur de projets (Visual Basic)

Concepts

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