Les contrôles utilisateur ne s’affichent pas dans la boîte à outils

J’ai quelques UserControls que j’ai créés dans ProjectA. J’ai ProjectB qui a un formulaire Windows que je veux mettre les contrôles. Ces deux projets sont dans une solution unique. Il existe une référence à ProjectA à partir de ProjectB afin de pouvoir “voir” les UserControls.

Toutefois, les UserControls ne s’affichent pas dans la boîte à outils pour que je puisse faire glisser le formulaire Windows.

J’ai essayé de reconstruire. J’ai également supprimé le répertoire ‘bin’ pour forcer une reconstruction complète.

Comment puis-je obtenir VS2008 pour remplir la boîte à outils avec mes UserControls?

Vérifiez ce paramètre:

Outils> Options> Concepteur Windows Forms> Général: AutoToolboxPopulate

Il doit être défini sur True pour que cela fonctionne.

  1. Construisez votre projet pour vous assurer qu’il comstack.

  2. Avec le formulaire que vous souhaitez que votre utilisateur contrôle, ouvrez la boîte à outils, cliquez avec le bouton droit de la souris et sélectionnez “Choisir les éléments”

  3. Accédez à votre fichier .exe ou dll que vous avez compilé à l’étape 1.

  4. Assurez-vous que le contrôle de l’utilisateur est coché à côté, appuyez sur OK.

  5. Votre contrôle utilisateur doit apparaître dans la boîte à outils, faites-le glisser sur votre formulaire.

Ceci est adapté de la réponse de Calanus à une question similaire .

Dans mon cas, le AutoToolboxPopulate était déjà défini (Visual C # 2010 Express).

Cependant, j’ai dû activer “Afficher tout” à partir des propriétés de la boîte à outils (clic droit) pour voir mes nouveaux contrôles utilisateur.

Jusqu’à présent, je n’avais aucun problème avec les contrôles d’utilisation qui n’apparaissaient pas dans la boîte à outils. Construisez le projet et ça se voit. Alors aujourd’hui ne fonctionne pas. Après une recherche je suis passé par la suite mais toujours pas de joie.

  • Outils> Options> Concepteur Windows Forms> Général: AutoToolboxPopulate
  • Outils> Options> Editeur de texte> XMAL> Divers: AutoToolboxPopulate
  • Réinitialiser les parameters VS à la valeur par défaut

Donc, après quelques heures à essayer de le faire fonctionner sans succès, j’ai créé un nouveau projet Windows WPF acceptant le nom par défaut et ajouté un contrôle utilisateur. Construit le projet et le contrôle de l’utilisateur est apparu comme il l’a toujours fait.

J’ai alors pensé que quelque chose n’allait pas avec mon projet ou le fichier de fenêtre wpf. Suppression du projet, création d’un nouveau projet et ajout d’un nouveau contrôle. Construit le projet mais ça n’a pas marché.

La seule chose que je faisais différemment était de choisir un nom pour le projet, dans lequel j’ai inclus un espace dans le nom “Application WPF”.

Retiré le projet et en créer un nouveau appelé “WPFApplication” sans espace et ajouté un contrôle utilisateur. Construit et le contrôle de l’utilisateur est apparu.

Si vous voulez que les contrôles utilisateur apparaissent automatiquement dans la boîte à outils lors de la construction, n’utilisez pas d’espaces dans le nom du projet. Espérons que ce post sauvera quelqu’un d’autre une tonne de temps perdu.

Une autre raison pour laquelle les contrôles utilisateur peuvent ne pas apparaître dans la boîte à outils est s’ils n’ont pas de constructeur par défaut.

Vérifiez également que vos contrôles utilisateur ont un espace de noms valide.

Je viens de découvrir que les contrôles sans espace de noms ne sont pas placés dans la boîte à outils.

Généralement, vous devez créer la solution. Cela fonctionne presque toujours pour moi.

J’ai eu le même problème. Après beaucoup de recherche sur Google, je n’ai rien trouvé, mais par chance, j’ai découvert que si vous cliquez sur la boîte à outils alors que vous êtes dans le même projet que vous avez créé le contrôle utilisateur, et cochez ” Afficher tout “, un groupe avec le même nom que votre projet apparaîtra en haut de la boîte à outils dans laquelle vous pourrez trouver le contrôle de l’utilisateur. Vous pouvez maintenant append votre contrôle sur le formulaire souhaité!

Pour quelqu’un qui pourrait travailler avec ToolSsortingpItems (par exemple, ToolSsortingpStatusLabel ), pour que votre contrôle dérivé apparaisse dans le menu déroulant (comme celui de StatusSsortingp ), vous devez définir la classe sur public puis créer la solution.

N’oubliez pas non plus l’atsortingbut de concepteur pour votre classe, quelque chose comme ceci:

 using System.Windows.Forms.Design; [ToolSsortingpItemDesignerAvailability(ToolSsortingpItemDesignerAvailability.StatusSsortingp)] public class MyStatusLabel : ToolSsortingpStatusLabel { } 

Il m’a fallu du temps pour bien faire les choses. J’espère que cela peut sauver le temps de quelqu’un d’autre.

Mon contrôle était public, il était coché dans la boîte de dialog “Choisir les éléments de la boîte à outils”, mais il n’apparaissait toujours pas.

C’est ce qui a finalement fonctionné pour moi:

Cliquez avec le bouton droit quelque part dans la Boîte à outils et cliquez sur «Choisir les éléments». Lorsque j’ai trouvé mon article, il était déjà vérifié. J’ai ensuite décoché l’article et cliqué sur OK. Ensuite, j’ai à nouveau cliqué avec le bouton droit sur la boîte à outils et cherché mon article … il était parti, alors j’ai cliqué sur Parcourir, navigué vers le dossier obj / x86 / debug et sélectionné mon exe. L’élément a ensuite été ajouté correctement à la boîte à outils.

Je pense que c’est un bug VS.

En dehors de toutes les instructions données (Outils> Options> Windows Forms Designer> Général: AutoToolboxPopulate) + vous devez créer la solution (ce qui est évident pour moi), vous devrez probablement faire attention au modificateur d’access aux classes: il DOIT être PUBLIQUE. Je viens de créer un contrôle et je ne suis pas apparu dans la liste des boîtes à outils et je ne savais pas pourquoi. Donc après set

 public class yourClass:control {} 

qu’il est apparu dans la liste. 😉 J’espère que cela aidera les autres.

Vérifiez votre répertoire de sortie de construction. Si, pour une raison quelconque, vous créez votre sortie ailleurs que dans le répertoire bin \ du projet, vos contrôles n’apparaîtront pas dans votre boîte à outils.

Voici mon problème: j’avais ajouté un nouveau constructeur pour mon contrôle qui acceptait quelques arguments, mais je n’avais pas explicitement déclaré à nouveau le constructeur vide! La boîte à outils ne peut inclure que des contrôles comportant des constructeurs vides. En général, lorsque vous concevez une classe dans vb, un constructeur vide est défini implicitement (ce qui signifie que vous n’avez pas besoin d’en déclarer une). MAIS, dès que vous commencez à concevoir vos propres constructeurs, ce constructeur vide disparaît, vous devez donc le redéfinir explicitement dans votre code! Quoi qu’il en soit, je me rends compte que les codeurs VB les plus expérimentés savent déjà tout cela, mais j’espère que cela peut aider certains débutants comme moi :).

Il est possible que tout ce qui précède échoue.

Je l’ai corrigé en créant un nouveau contrôle utilisateur (TestControl) et Visual Studio a été amené à append par magie l’onglet Contrôles + Contrôles de mon projet dans la Boîte à outils. Ensuite, je viens de supprimer le contrôle de test.

Cela m’est arrivé après avoir récemment installé une mise à jour automatique des fenêtres de VS 2008, soit dit en passant.

Ce que je fais habituellement, c’est créer un nouvel onglet et append l’exe / dll à cet onglet … Pas trop à l’aise avec cette solution en raison du temps de chargement et des problèmes généraux.

Un ami m’a montré un moyen d’accélérer le processus. Au lieu de cliquer sur “Choisir les éléments …” dans la boîte à outils, etc. pour chaque nouveau contrôle que vous effectuez – Vous pouvez créer un fichier nommé MyCustomControls et y créer vos contrôles personnalisés.

Il ne vous rest plus qu’à faire le “Choose Items …” et à append ce fichier ONCE. Si vous décidez plus tard d’append un nouveau contrôle, créez-le dans MyCustomControls , puis reconstruisez.
Ensuite, votre boîte à outils aura votre nouveau contrôle. (Il sera affiché automatiquement avec une compilation régulière si vous avez AutoToolboxPopulate je pense)

C’est regrettable, car vous voulez souvent séparer les classes en “une classe par fichier”. Il est horrible que vous deviez ruiner votre architecture de code simplement parce que VS ne veut pas le faire à votre façon. 🙂

Je ne suis pas trop à l’aise avec cette solution non plus, mais si vous devez faire quelque chose de rapide et que vous ne vous souciez pas de plusieurs contrôles utilisateur dans un fichier ou que vous êtes simplement paresseux, cela pourrait vous convenir. 🙂

Eh bien, rien ne fonctionnait pour moi sauf que ça marchait …

  1. Je crée un nouveau projet dans ma solution, et pour ce projet, ça marche, donc j’allais commencer à utiliser celui-ci
  2. En jouant, j’ai commencé à peaufiner le xml du fichier csproj pour découvrir ce qui n’allait pas avec mon autre projet dans la même solution, puis je l’ai réinitialisé car il ne semblait pas fonctionner
  3. Il travaille maintenant à nouveau comme par magie dans mon projet

Pas une très bonne solution mais vous devriez essayer ces étapes

  1. Voir si cela fonctionne dans une nouvelle solution / projet.
  2. Voir si cela fonctionne dans un nouveau projet dans la même solution
  3. Si # 2 a fonctionné, peut-être comparer les fichiers .csproj … en quelque sorte les miens ont recommencé à travailler pendant que je le faisais (c’est très frustrant).

Si vous avez déjà essayé de bricoler avec:

  • Outils> Options> Concepteur Windows Forms> Général: AutoToolboxPopulate
  • Outils> Options> Editeur de texte> XMAL> Divers: AutoToolboxPopulate
  • créé un constructeur par défaut
  • construire votre projet / réinitialiser la boîte à outils et append manuellement votre onglet

Pourtant, vous le voyez toujours grisé.

Vérifiez la longueur de votre chemin et vérifiez les caractères utilisés dans votre chemin absolu .

J’ai eu un projet résidant dans “C: \ Users \ myName \ myCompany \ R & D \ Projects”
Et après quelques heures, nous avons découvert que le “R & D” est le problème.
Le ‘ & ‘ ne permettait pas que mes éléments de contrôle utilisateur soient activés dans ma boîte à outils.

Je suis tombé dans ce piège il y a quelques heures.
J’ai un projet d’application Windows .NET 2.0 avec des UserControls personnalisés; ça marchait bien J’ai donc décidé de commander mes fichiers dans des sous-dossiers afin de rendre mon projet un peu plus propre.
Après cela, le concepteur de Visual Studio 2010 a arrêté de charger mes formulaires et ToolBox n’affiche plus mes contrôles.
J’ai paniqué, en reculant les fichiers sources dans la racine du projet, en réinitialisant ToolBox, mais rien ne semblait fonctionner. Après cela, je me suis souvenu que j’avais utilisé ReSharper “Remove Unused References”, alors j’ai essayé de remettre les références inutilisées , en particulier System.Data : problème résolu! : O je ne peux pas vous dire pourquoi, mais cela a fonctionné pour moi.
J’espère que mon expérience peut aider quelqu’un d’autre. 🙂
Au revoir, Nando

Si vous ne trouvez toujours pas pourquoi votre boîte à outils vstudio n’est pas remplie avec vos contrôles utilisateur. Ensuite, vous pouvez déboguer vstudio avec un autre studio visuel. Ici vous pouvez trouver comment .

Si vous avez essayé de suivre toutes les autres réponses et que cela ne fonctionne toujours pas, voici ce qui a été résolu:

  • Faites un clic droit sur votre projet contenant votre contrôle.
  • Sélectionnez Properties .
  • Dans la catégorie Paramètres de Build , assurez-vous Register for COM interop est cochée.

Dans mon cas, la raison de l’erreur était la longueur excessive du chemin d’access au fichier .dll de mon contrôle. Je l’avais un peu réduit et tout fonctionnait bien.

J’ai également découvert que les symboles spéciaux (par exemple, j’ai utilisé #) dans un chemin affectent un affichage de contrôle.

J’espère que cela résout le problème.

Dans votre UserControl, assurez-vous que New est déclaré Public . Il ne s’affichera pas s’il est simplement déclaré Sub New (par défaut Friend).

Symptôme 1: Les vues de conception pour Form, UserControl et Component étaient FAILING!

  • La vue de conception de mon formulaire échouait avec le msg “impossible de trouver” Contrôle utilisateur “.”
  • Si je pouvais faire en sorte que la vue de conception de formulaire fonctionne, elle était très instable et corrompue.

Symptôme 2: le composant UserControl & Component dans la boîte à outils

  • Étaient grisés dans la boîte à outils et ont montré un nom brouillé
  • “Choisir un élément” dans le menu contextuel de la boîte à outils affiche un nom illisible et aucun espace de noms

Solution: définissez la scope sur Public dans la vb derrière UserControl & Component

Vérifiez le chemin du projet, évitez & , # etc.

J’ai déplacé ma solution du drive:\work\c#\folder\ vers le drive:\work\folder et cela a résolu le problème.

J’essayais de créer une application x64 uniquement, donc ma cible de plate-forme était définie sur x64 .

Toutefois, même en 2016, Visual Studio ( devenv.exe ) est toujours un processus 32 bits et ne peut pas charger des assemblys 64 bits. Pour vérifier le bitness de votre Visual Studio, ouvrez le Gestionnaire des tâches et vérifiez *32 au nom du processus.

Solution de contournement pour voir les contrôles dans la boîte à outils: définissez la cible de la plate-forme sur Any CPU dans les parameters du projet. Faites-le pour la génération de débogage et de publication, si nécessaire.

Lorsque j’ai essayé d’append mon UserControl à la boîte à outils (clic droit sur la boîte à outils, choisir des éléments, sélectionner ma DLL), un message indiquant qu’il n’y avait aucun contrôle dans ma DLL s’affiche.

Quoi qu’il en soit, le problème a été résolu, en essayant de créer un formulaire dans ma DLL dans VS et en ajoutant le contrôle UserControl. Un message d’erreur affiché indiquant qu’il n’y avait pas de constructeur par défaut

 public UserControl() { ... } 

Le concepteur en a besoin car il ne sait pas quels arguments valides sont. Une fois que j’ai ajouté un constructeur vide à UserControl, il a été ajouté à la boîte à outils sans problème.

Comme mentionné ici, vous devriez dire au studio visuel de charger votre contrôle utilisateur dans la boîte à outils.

 [ToolboxItem(true)] public class PanelTitle : LabelControl { // Whatever code to override LabelControl here... } 

Avant d’essayer d’append un contrôle personnalisé, assurez-vous qu’il est compatible avec la version .Net de votre projet actuel.

J’essayais d’append un contrôle personnalisé à la boîte à outils pour un projet pour Windows CE 5.0 et .Net Compact v3.5 sur VS2008. J’ai fait toutes les suggestions précédentes mais rien n’a fonctionné. Le contrôle apparaît lorsque “Afficher tout” est coché mais il est grisé, même dans le menu “Choisir les articles” est coché.

J’ai créé un nouveau projet avec .Net v2.0 et cela a fonctionné parfaitement.

bonjour sa réponse Ctrl + Alt + X prennent ceci et plus tard vous avez TOOLBOX 🙂