Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Lorsque vous créez un contrôle personnalisé, il est souvent nécessaire de déboguer son comportement au moment du design. Cela est particulièrement vrai si vous créez un concepteur personnalisé pour votre contrôle personnalisé. Pour plus d’informations, consultez procédure pas à pas : création d’un contrôle Windows Forms qui tire parti des fonctionnalités de Visual Studio Design-Time.
Vous pouvez déboguer vos contrôles personnalisés à l’aide de Visual Studio, comme vous le feriez pour déboguer d’autres classes .NET Framework. La différence est que vous allez déboguer une instance distincte de Visual Studio qui exécute le code de votre contrôle personnalisé.
Important
Cet article s'adresse principalement au Concepteur In-Process classique pour Windows Forms avec .NET Framework. Les procédures peuvent ne pas être directement applicables ou entièrement compatibles avec les projets qui ciblent .NET (et non .NET Framework).
Pour les projets .NET Framework, seuls les projets pouvant être compilés avec les paramètres de la plateforme cible Tout ou x64 sont entièrement pris en charge dans le Concepteur. Les projets qui utilisent ActiveX, COM ou d’autres composants 32 bits peuvent rencontrer des problèmes de compatibilité. Le concepteur Out-Of_Process Framework, actuellement en préversion, résout la plupart de ces problèmes de compatibilité. Toutefois, les fonctionnalités au moment du design peuvent ne pas fonctionner ainsi que le Concepteur In-Process 64 bits. Pour activer le concepteur d’infrastructure hors processus, accédez à Outils>Options>Environnement>Fonctionnalités de préversion.
Pour plus d’informations sur le concepteur hors processus, consultez Les modifications apportées au concepteur depuis .NET Framework.
Créer le projet
La première étape consiste à créer le projet d’application. Vous utiliserez ce projet pour générer l’application qui héberge le contrôle personnalisé.
Dans Visual Studio, créez un projet d’application Windows et nommez-le DebuggingExample.
Créer le projet de bibliothèque de contrôles
Ajoutez un projet de bibliothèque de contrôles Windows à la solution.
Ajoutez un nouvel élément UserControl au projet DebugControlLibrary. Donnez-lui le nom DebugControl.
Dans Explorateur de solutions, supprimez le contrôle par défaut du projet en supprimant le fichier de code avec un nom de base de UserControl1.
Générez la solution.
Point de contrôle
À ce stade, vous pourrez voir votre contrôle personnalisé dans la boîte à outils .
Pour vérifier votre progression, recherchez le nouvel onglet appelé Composants DebugControlLibrary et cliquez pour le sélectionner. Lorsqu’il s’ouvre, votre contrôle apparaît comme DebugControl avec l’icône par défaut en regard de celle-ci.
Ajouter une propriété à votre contrôle personnalisé
Pour démontrer que le code de votre contrôle personnalisé s’exécute au moment du design, vous allez ajouter une propriété et définir un point d’arrêt dans le code qui implémente la propriété.
Ouvrez DebugControl dans l’éditeur de code . Ajoutez le code suivant à la définition de classe :
Private demoStringValue As String = Nothing <BrowsableAttribute(true)> Public Property DemoString() As String Get Return Me.demoStringValue End Get Set(ByVal value As String) Me.demoStringValue = value End Set End Propertyprivate string demoStringValue = null; [Browsable(true)] public string DemoString { get { return this.demoStringValue; } set { demoStringValue = value; } }Générez la solution.
Ajouter votre contrôle personnalisé au formulaire hôte
Pour déboguer le comportement au moment du design de votre contrôle personnalisé, vous placez une instance de la classe de contrôle personnalisée sur un formulaire hôte.
Dans le projet « DebuggingExample », ouvrez Form1 dans le Concepteur Windows Forms.
Dans la boîte à outils , ouvrez l’onglet Composants DebugControlLibrary et faites glisser une instance DebugControl sur le formulaire.
Recherchez la propriété personnalisée
DemoStringdans la fenêtre propriétés . Notez que vous pouvez modifier sa valeur comme vous le feriez pour toute autre propriété. Notez également que lorsque la propriétéest sélectionnée, la chaîne de description de la propriété apparaît en bas de la fenêtre propriétés .
Configurez le projet pour le débogage au moment du design
Pour déboguer le comportement de conception de votre contrôle personnalisé, vous allez déboguer une instance distincte de Visual Studio qui exécute le code de votre contrôle personnalisé.
Cliquez avec le bouton droit sur le projet
DebugControlLibrary dans l’Explorateur de solutions, puis sélectionnez Propriétés .Dans la feuille de propriétés DebugControlLibrary, sélectionnez l’onglet Débogage.
Dans la section Démarrer l’action, sélectionnez Démarrer le programme externe. Vous allez déboguer une instance distincte de Visual Studio, donc cliquez sur le bouton avec les points de suspension (
) pour rechercher l’IDE Visual Studio. Le nom du fichier exécutable est devenv.exeet, si vous avez installé à l’emplacement par défaut, son chemin d’accès est %ProgramFiles(x86)%\Microsoft Visual Studio\2019\<édition>\Common7\IDE.Sélectionnez OK pour fermer la boîte de dialogue.
Cliquez avec le bouton droit sur le projet DebugControlLibrary, puis sélectionnez Définir comme projet de démarrage pour activer cette configuration de débogage.
Déboguez votre contrôle personnalisé au moment du design
Vous êtes maintenant prêt à déboguer votre contrôle personnalisé au fur et à mesure qu’il s’exécute en mode création. Lorsque vous démarrez la session de débogage, une nouvelle instance de Visual Studio sera créée et vous l’utiliserez pour charger la solution « DébogageExample ». Lorsque vous ouvrez Form1 dans le concepteur de formulaires , une instance de votre contrôle personnalisé est créée et commence à s’exécuter.
Ouvrez le fichier source DebugControl dans l’Éditeur de code et placez un point d’arrêt sur l’accesseur
Setde la propriétéDemoString.Appuyez sur F5 pour démarrer la session de débogage. Une nouvelle instance de Visual Studio est créée. Vous pouvez faire la distinction entre les instances de deux façons :
L’instance de débogage comporte le mot En cours d’exécution dans sa barre de titre
Le bouton Démarrer de la barre d’outils Déboguer de l’instance de débogage est désactivé
Votre point d’arrêt est défini dans l’instance de débogage.
Dans la nouvelle instance de Visual Studio, ouvrez la solution « DebuggingExample ». Vous pouvez facilement trouver la solution en sélectionnant Projets récents dans le menu Fichier. Le fichier de solution « DebuggingExample.sln » est répertorié comme fichier le plus récent utilisé.
Important
Si vous déboguez un projet .NET 6 ou version ultérieure, ne chargez pas le projet, utilisez plutôt cette instance de Visual Studio pour attacher un débogueur au processus de DesignToolsServer.exe. Sélectionnez l'élément du menu Déboguer>Attacher au processus. Recherchez DesignToolsServer.exe dans la liste des processus et appuyez sur Attacher. Pour plus d’informations, consultez Les changements du concepteur depuis .NET Framework.
Ouvrez Form1 dans le concepteur de formulaires et sélectionnez le contrôle DebugControl.
Modifiez la valeur de la propriété
DemoString. Lorsque vous validez la modification, l’instance de débogage de Visual Studio acquiert le focus et l’exécution s’arrête à votre point d’arrêt. Vous pouvez exécuter pas à pas l'accesseur de propriété comme vous le feriez pour n'importe quel autre code.Pour arrêter le débogage, quittez l’instance hébergée de Visual Studio ou sélectionnez le bouton Arrêter le débogage dans l’instance de débogage.
Étapes suivantes
Maintenant que vous pouvez déboguer vos contrôles personnalisés au moment du design, il existe de nombreuses possibilités pour développer l’interaction de votre contrôle avec l’IDE Visual Studio.
Vous pouvez utiliser la propriété DesignMode de la classe Component pour écrire du code qui ne s’exécutera qu’au moment du design. Pour plus d’informations, consultez DesignMode.
Vous pouvez appliquer plusieurs attributs aux propriétés de votre contrôle pour manipuler l’interaction de votre contrôle personnalisé avec le concepteur. Vous trouverez ces attributs dans l’espace de noms System.ComponentModel.
Vous pouvez écrire un concepteur personnalisé pour votre contrôle personnalisé. Cela vous permet de contrôler complètement l’expérience de conception à l’aide de l’infrastructure de concepteur extensible exposée par Visual Studio. Pour plus d’informations, consultez procédure pas à pas : création d’un contrôle Windows Forms qui tire parti des fonctionnalités de Visual Studio Design-Time.
Voir aussi
.NET Desktop feedback