Partager via


Résoudre les problèmes liés à la création de contrôles et de composants

Cette rubrique répertorie les problèmes courants suivants qui surviennent lors du développement de composants et de contrôles :

  • Impossible d’ajouter un contrôle à la boîte à outils

  • Impossible de déboguer le contrôle utilisateur ou le composant Windows Forms

  • L'événement est déclenché deux fois dans le contrôle ou le composant hérité

  • erreur Design-Time : « Échec de la création d’un composantnom du composant»

  • STAThreadAttribute

  • L’icône du composant n’apparaît pas dans la boîte à outils

Impossible d’ajouter un contrôle à la boîte à outils

Si vous souhaitez ajouter un contrôle personnalisé que vous avez créé dans un autre projet ou un contrôle tiers à la boîte à outils , vous devez le faire manuellement. Si le projet actuel contient votre contrôle ou composant, il doit apparaître automatiquement dans la boîte à outils . Pour plus d’informations, consultez l’article Procédure pas à pas : remplissage automatique de la boîte à outils avec des composants personnalisés.

Pour ajouter un contrôle à la boîte à outils

  1. Cliquez avec le bouton droit sur la boîte à outils et, dans le menu contextuel, sélectionnez Choisir des éléments.

  2. Dans la boîte de dialogue Choisir des éléments de boîte à outils, ajoutez le composant :

    • Si vous souhaitez ajouter un composant ou un contrôle .NET Framework, cliquez sur l’onglet composants .NET Framework.

      –ou–

    • Si vous souhaitez ajouter un composant COM ou un contrôle ActiveX, cliquez sur l’onglet composants COM.

  3. Si votre contrôle est répertorié dans la boîte de dialogue, vérifiez qu’il est sélectionné, puis cliquez sur OK.

    Le contrôle est ajouté à la boîte à outils .

  4. Si votre contrôle n’est pas répertorié dans la boîte de dialogue, procédez comme suit :

    1. Cliquez sur le bouton Parcourir.

    2. Accédez au dossier qui contient le fichier .dll qui contient votre contrôle.

    3. Sélectionnez le fichier .dll, puis cliquez sur Ouvrir.

      Votre contrôle apparaît dans la boîte de dialogue.

    4. Vérifiez que votre contrôle est sélectionné, puis cliquez sur OK.

      Votre contrôle est ajouté à la boîte à outils .

Impossible de déboguer le contrôle utilisateur ou le composant Windows Forms

Si votre contrôle dérive de la classe UserControl, vous pouvez déboguer son comportement d’exécution avec le conteneur de test. Pour plus d’informations, consultez l’article Aide et Astuces : tester le comportement d’un UserControl au moment de l’exécution.

Les autres contrôles et composants personnalisés ne sont pas des projets autonomes. Ils doivent être hébergés par une application telle qu’un projet Windows Forms. Pour déboguer un contrôle ou un composant, vous devez l’ajouter à un projet Windows Forms.

Pour déboguer un contrôle ou un composant

  1. Dans le menu Générer, cliquez sur Générer la solution pour générer votre solution.

  2. Dans le menu Fichier, choisissez Ajouter, puis nouveau projet pour ajouter un projet de test à votre application.

  3. Dans la boîte de dialogue Ajouter un nouveau projet, choisissez application Windows pour le type de projet.

  4. Dans l’Explorateur de solutions, faites un clic droit sur le nœud Références de votre nouveau projet. Dans le menu contextuel, cliquez sur Ajouter une référence pour ajouter une référence au projet contenant le contrôle ou le composant.

  5. Créez une instance de votre contrôle ou composant dans le projet de test. Si votre composant se trouve dans la boîte à outils , vous pouvez le faire glisser vers votre aire de concepteur, ou vous pouvez créer l’instance par programmation, comme illustré dans l’exemple de code suivant.

    Dim Component1 As New MyNeatComponent()
    
    MyNeatComponent Component1 = new MyNeatComponent();
    

    Vous pouvez désormais déboguer votre contrôle ou composant comme d’habitude.

Pour plus d’informations sur le débogage, consultez les articles Débogage dans Visual Studio et Procédure pas à pas : débogage des contrôles Windows Forms personnalisés au moment du design.

Un événement est généré deux fois dans le composant ou le contrôle hérité

Cela est probablement dû à une clause Handles dupliquée. Pour plus d’informations, consultez Résolution des problèmes liés aux gestionnaires d’événements hérités dans Visual Basic.

Design-Time Erreur : « Échec de la création du composant « Nom du composant »

Votre composant ou contrôle doit fournir un constructeur sans paramètre. Lorsque l’environnement de design crée une instance de votre composant ou de votre contrôle, il n’essaie pas de fournir des paramètres aux surcharges de constructeur qui prennent des paramètres.

STAThreadAttribute

Le STAThreadAttribute informe le Common Language Runtime (CLR) que Windows Forms utilise le modèle de thread unique cloisonné. Vous remarquerez peut-être un comportement inattendu si vous n’appliquez pas cet attribut à la méthode Main de votre application Windows Forms. Par exemple, les images d’arrière-plan peuvent ne pas apparaître pour les contrôles comme ListView. Certains contrôles peuvent également avoir besoin de cet attribut pour fournir un comportement approprié de saisie semi-automatique et de glisser-déplacer.

L’icône du composant n’apparaît pas dans la boîte à outils

Lorsque vous utilisez ToolboxBitmapAttribute pour associer une icône à votre composant personnalisé, la bitmap n’apparaît pas dans la boîte à outils pour les composants générés automatiquement. Pour afficher l’image bitmap, rechargez le contrôle par le biais de la boîte de dialogue Choisir des éléments de boîte à outils. Pour plus d’informations, consultez l’article Aide et Astuces : fournir une image bitmap de boîte à outils pour un contrôle.

Voir aussi