102 votes

Comment placer un UserControl dans la boîte à outils de Visual Studio ?

J'ai créé un usercontrol dans mon projet, et après avoir construit le projet, j'ai besoin de le mettre dans ma boîte à outils, et de l'utiliser comme un contrôle commun. Mais je ne peux pas. UserControl est dans l'espace de noms de mon projet, et j'ai essayé Choose Item dans le menu du clic droit, mais je n'ai pas trouvé le moyen de l'ajouter.

131voto

DaveF Points 907

J'ai eu des difficultés à les faire ajouter automatiquement à la boîte à outils comme dans VS2008/2005.

Il existe en fait une option pour empêcher la boîte à outils de se remplir automatiquement !

Allez dans Outils > Options > Windows Forms Designer > Général

Au bas de la liste, vous trouverez Toolbox > AutoToolboxPopulate qui, sur une installation récente, a la valeur par défaut False. Mettez-le à true et reconstruisez votre solution.

Hé presto, les contrôles utilisateur de votre solution devraient être automatiquement ajoutés à la boîte à outils.

Vous devrez peut-être aussi recharger la solution.

37 votes

Le mot clé pour moi était "reconstruire"... je n'avais pas essayé, mais bon ! Rien qu'en faisant ça, ça a réglé le problème pour moi.

2 votes

Et j'ai dû rouvrir la solution après la reconstruction.

1 votes

Dans VS2012, ils ont maintenant ajouté l'indication "La solution actuelle doit être rouverte pour que cela prenne effet" à la boîte de dialogue des options.

38voto

Arseny Points 4270

Cliquez avec le bouton droit de la souris sur la barre d'outils puis cliquez sur "choisir un élément" dans le menu contextuel. Une boîte de dialogue avec les composants enregistrés apparaît. Dans cette boîte de dialogue, cliquez sur "Browse" pour sélectionner votre assemblage avec le contrôle d'utilisateur que vous voulez utiliser.

PS. Cet assemblage doit être enregistré avant.

18 votes

Pouvez-vous expliquer "enregistré avant" ? Je ne pense pas que ce soit nécessaire.

0 votes

Il veut probablement dire que vous devez placer vos contrôles d'utilisateur dans une DLL séparée, puis ajouter cette DLL à la boîte à outils après l'avoir construite.

29voto

scott Points 943

J'ai découvert que le contrôle utilisateur doit avoir un constructeur sans paramètre, sinon il n'apparaîtra pas dans la liste. Du moins, c'était vrai dans vs2005.

6 votes

Aussi dans vs2015 ?

6 votes

Oui, également dans vs2015

5 votes

Ajouter vs2017 à la liste

15voto

Nick Points 111

Utilisation de VS 2010 :

Disons que vous avez un projet Windows.Forms. Vous ajoutez un UserControl (disons MyControl) au projet et vous le concevez entièrement. Vous voulez maintenant l'ajouter à votre boîte à outils.

Dès que le projet est construit une fois avec succès, il apparaît dans les composants de votre Framework. Cliquez avec le bouton droit de la souris sur la boîte à outils pour obtenir le menu contextuel, sélectionnez "Choose Items...", et recherchez le nom de votre contrôle (MyControl) sous l'onglet ".NET Framework Components".

Avantage par rapport à l'utilisation des dlls : vous pouvez modifier les contrôles dans le même projet que votre formulaire, et le formulaire sera construit avec les nouveaux contrôles. Cependant, le contrôle ne sera disponible que dans ce projet.

Remarque : si le contrôle présente des erreurs de construction, résolvez-les avant de passer aux formulaires qui le contiennent, sinon le concepteur aura une crise cardiaque.

1 votes

Il pourrait également être disponible pour d'autres projets si vous importez le fichier .exe dans la boîte à outils.

1 votes

Toute réponse contenant "ou le concepteur a une crise cardiaque" obtient mon vote !

0 votes

J'ai fait la même chose et tout va bien, mais lorsque j'ai déplacé le code dans un autre projet, créé une dll, et référencé le fichier dll, le contrôle personnalisé n'apparaît pas.

7voto

MoMo Points 5587

J'avais de nombreux contrôles d'utilisateurs, mais l'un d'entre eux refusait de s'afficher dans l'interface utilisateur. Boîte à outils bien que j'aie reconstruit la solution et qu'elle ait été vérifiée dans la base de données de l'entreprise. Choisissez les articles... dialogue.

Solution :

  1. Desde Explorateur de solutions I Cliquez avec le bouton droit de la souris sur le fichier de contrôle de l'utilisateur incriminé et a sélectionné Exclure du projet
  2. Reconstruire la solution
  3. Cliquez avec le bouton droit de la souris sur le contrôle de l'utilisateur et sélectionnez Inclure dans le projet (en supposant que vous ayez le Afficher tous les fichiers activé dans le Explorateur de solutions )

Nota cela nécessite également que vous ayez le AutoToolboxPopulate option activée. Comme le suggère la réponse de @DaveF.

Solution alternative : Je ne suis pas sûr que cela fonctionne, et je n'ai pas pu l'essayer puisque j'ai déjà résolu mon problème, mais si vous décochez le contrôle de l'utilisateur de l'option Choisissez les articles... J'ai cliqué sur OK, puis j'ai rouvert la boîte de dialogue et vérifié le contrôle de l'utilisateur. Cela peut aussi fonctionner.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X