Partager via


Extension du modèle d'application Visual Basic

Mise à jour : novembre 2007

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 My.Application.Run, méthode 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 de texte et l'entité de sécurité actuelle pour le thread de l'application principale (si l'application utilise l'authentification Windows) et appelle ShowSplashScreen si ni /nosplash ni -nosplash n'est utilisé comme un 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 l'application a un écran de démarrage défini 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 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 My.Application.MinimumSplashScreenDisplayTime, propriété.

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

      Par défaut, cette méthode n'effectue aucune opération. Si vous sélectionnez un écran de démarrage pour votre application dans le Concepteur de projetsVisual Basic, le concepteur substitue la méthode OnCreateSplashScreen par une méthode qui affecte à la propriété SplashScreen une nouvelle instance du formulaire de l'é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émarrage à partir duquel l'application principale est prête à s'exécuter, une fois l'initialisation effectuée.

    Par défaut, avant qu'elle n'entre 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 n'effectue aucune opération. Toutefois, lorsque vous sélectionnez un formulaire principal pour votre application dans le Concepteur de projetsVisual Basic, le concepteur substitue la méthode OnCreateMainForm par une méthode qui affecte à la propriété MainForm une nouvelle instance du formulaire principal.

    2. HideSplashScreen. Si l'application a un écran de démarrage défini et 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 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. Exécuté 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 rattaché 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 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 True, indiquant ainsi 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 avec le Concepteur de projets

IsSingleInstance

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

Comment : spécifier le comportement d'instanciation pour une application (Visual Basic)

EnableVisualStyles

Si l'application utilise des styles visuels XP.

Comment : activer des styles visuels (Visual Basic)

SaveMySettingsOnExit

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

Activez la case à cocher Enregistrer My.Settings lors de l'arrêt dans le volet Application du Concepteur de projets.

ShutdownStyle

Ce qui provoque l'arrêt de l'application, par exemple lorsque le formulaire principal ou tous les formulaires se ferment.

Comment : spécifier le comportement d'arrêt pour une application (Visual Basic)

Voir aussi

Concepts

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

Référence

My.Application, objet

My.Application.Startup, événement

My.Application.StartupNextInstance, événement

My.Application.UnhandledException, événement

My.Application.Shutdown, événement

My.Application.NetworkAvailabilityChanged, événement

WindowsFormsApplicationBase