IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB.NET Discussion :

Ajouter un controle personalisé à la boite à outils


Sujet :

VB.NET

  1. #1
    Membre averti
    Femme Profil pro
    Inscrit en
    Avril 2013
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Avril 2013
    Messages : 16
    Par défaut Ajouter un controle personalisé à la boite à outils
    Bonjour à tous,

    Je n'arrive pas à ajouter un contrôle personnalisé à un nouveau projet. Dans le détail (et clairement) voici ce que j'ai fait:

    [Visual Studio 2022]
    Erreur = "XXXXXX.dll cible une plateforme dont les éléments de boite à outils ne peuvent pas être énumérés dynamiquement"

    1) J'ai crée un nouveau projet ayant pour modèle "Windows form" que je nomme MonPanelPersonnalise
    2) Dans ce projet, j'ai crée une class personnalisée de panneau qui hérite de la classe panel
    3) Les méthodes de ma classes sont publiques (mais à priori ça ne change rien, qu'elles soient publiques ou non j'ai le même message d'erreur à la fin)
    3) J'ai paramétré le type de sortie de mon projet à "bibliothèque de classes" (dans l'explorateur de solutions, je me place sur mon Projet puis Alt + Entrée pour ouvrir ses propriétés)
    4) Dans Projet>Gestionnaire de configurations, la plateforme active est réglée sur "Any CPU"
    5) Je crée un build de mon projet (Générer>Générer la solution)
    6) Je vais dans le dossier de ma Solution puis bin\Debug\net6.0-windows\MonPanelPersonnalise.dll puis je copie cette dll dans un autre dossier, le bureau par exemple.
    7) Enfin, dans un autre projet (toujours de modèle "Windows form"), je clique droit sur ma boite à outil puis "Ajouter un onglet" afin de créer un groupe de contrôles personnalisés
    8) De nouveau dans la boite à outils, clic droit puis "Choisir des éléments"
    9) La boite de dialogue "Choisir des éléments de boite à outils s'ouvre"
    10) Dans l'onglet "Composants .NET Framework", je clique sur "Parcourir", je choisis le fichier copié à l'étape 6.
    11) Et là, l'erreur suivante s'affiche: "C:\Blablabla\MonPanelPersonnalise.dll cible une plateforme dont les éléments de boite à outils ne peuvent pas être énumérés dynamiquement"

    Sauriez vous quel est le problème?
    Merci beaucoup pour votre aide, je bloque complètement

  2. #2
    Membre éprouvé Avatar de excalybur
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Novembre 2014
    Messages
    317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : Conseil

    Informations forums :
    Inscription : Novembre 2014
    Messages : 317
    Par défaut
    Bonjour

    Je me demande si ta réponse n'est pas là : https://learn.microsoft.com/fr-fr/vi...w?view=vs-2022

  3. #3
    Membre averti
    Femme Profil pro
    Inscrit en
    Avril 2013
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Avril 2013
    Messages : 16
    Par défaut
    Bonsoir, malheureusement étant novice je n'ai pas réussi à solutionner le problème. La seule chose que j'ai su faire c'est mettre à jour la sdk en .net 8.0, mais comme j'ai ciblé .net 6.0, ça ne change rien au final... j'ai beau chercher je n'ai pas compris d'où vient le problème. Merci quand même...

  4. #4
    Membre éprouvé Avatar de excalybur
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Novembre 2014
    Messages
    317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : Conseil

    Informations forums :
    Inscription : Novembre 2014
    Messages : 317
    Par défaut
    Bonjour,

    J'ai essayé de comprendre ta configuration mais il me manque de nombreux éléments, par exemple de quelle boite à outils parle-tu ? etc.

    Pour que nous puissions essayer de t'aider, peux-tu nous donner plus d'info par exemple : code, captures d'écran => une sorte de visuel de ton parcours et des problèmes, framework de chaque application, etc. ?

    A+

  5. #5
    Expert confirmé
    Avatar de popo
    Homme Profil pro
    Analyste programmeur Delphi / C#
    Inscrit en
    Mars 2005
    Messages
    2 921
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Analyste programmeur Delphi / C#
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 2 921
    Par défaut
    Je dis peut-être une bêtise mais il me semble que l'ajout de composant dans la boite à outil via une DLL ne fonctionne pas en CORE.

    C'est que semble confirmer cette discussion.
    https://developercommunity.visualstu...s-tool/1626082

    Par contre, si tu copies les sources de ton composant dans ton nouveau projet, cela devrait fonctionner.

  6. #6
    Membre Expert
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    1 507
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 1 507
    Par défaut
    Comme le dit le lien, il faut créer le package nuget de ce controle; une case à cocher dans les propriétés du projet du contrôle (partie Package > General: "Génerer le package NuGet en même temps que la build". A la génération, ça va créer un fichier [projet].[version].nupkg dans le dossier bin/release

    et dans le projet où tu veux le rajouter, ajouter une source de recherche des packages NuGet vers un dossier dans lequel tu aura mis le fichier nupkg généré (Menu Outils> gestionnaire de package Nuget >Paramètres du gestionnaire de package et dans sources de package, ajouter une entrée en cliquant sur le + et remplissant un nom et le chemin du package)
    ensuite, dans les packages Nuget, choisir la nouvelle source et tu devrais vois apparaitre celui de ton contrôle.

    Après, la solution la plus facile est celle de rajouter le projet du contrôle à ta solution (proposée par popo), ça permet de pouvoir aussi déboguer le contrôle sans faire un tas de manip.

  7. #7
    Membre averti
    Femme Profil pro
    Inscrit en
    Avril 2013
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Avril 2013
    Messages : 16
    Par défaut
    Oula super ça me fait beaucoup de réponses d'un coup c'est super merci à vous tous. Je vais partir en week end pour les fêtes du coup je n'aurai pas le temps de regarder tout ça mais dès que je reviens je regarderai ça attentivement. J'ai survolé les réponses de popo et umfred mais il faut que je relise en détail car c'est encore bien compliqué pour moi toutes ces explications, je ne comprends pas tout. Je relirai attentivement et essayerai de comprendre à mon retour. En attendant pour répondre à la question "répondable" d'excalibur, voici le controle que j'ai crée:
    Nom : capture panel deplaçable.JPG
Affichages : 233
Taille : 111,0 Ko
    Ensuite concernant mon framwork, j'ai choisit net 6.0 lorsque j'ai crée ma solution Application Windows form:
    Nom : capture net 6.0 choisit.png
Affichages : 233
Taille : 6,5 Ko
    Quand tu demandes "framework de chaque application", tu veux dire framework de chaque projets figurants dans la solution?
    Ce qui est confirmé dans les propriété de mon projet qui contient ma classe:
    Nom : capture propriété du projet.JPG
Affichages : 225
Taille : 68,7 Ko
    Par contre excellente question pour la boite à outil, je voudrais accéder à ce controle lorsque je suis sur une boite à outil d'un formulaire. Comme je n'y arrivais pas, j'ai cru que la solution était de rajouter une référence de projet (je ne sais pas ce que ça impliquait mais j'ai tenté le coup):
    Nom : ref de projet.png
Affichages : 223
Taille : 254,0 Ko
    Puis :
    Nom : ref de projet 2.png
Affichages : 230
Taille : 54,0 Ko

    et j'ai fait comme ceci mais du coup je vois mon controle apparaitre mais que lorsque je clique sur la boite à outil en ayant mon projet en surbreillance et non plus un formulaire (mise à part qu'il est écrit "Texte:" avant le nom du controle donc ça ne doit pas etre le meme controle que dans la boite à outil d'un formulaire):
    Nom : explication des boite à outils.png
Affichages : 234
Taille : 1,35 Mo

    Donc pour résumé, dans un autre projet (je recrée complètement une solution dans vs studio, je repars de 0), je fait cette manip pour ajouter une référence à mon projet qui contient mon controle personnalisé, et je vois ensuite le nom de ce controle apparaitre (comme dans la capture ci dessus) mais lorsque je reclique sur un formulaire il n'y est pas, donc je tente la manip que j'ai expliqué dans mon message initial et ça me mets l'erreur que j'ai décrite:
    Nom : Image3.jpg
Affichages : 230
Taille : 742,6 Ko

    Veuillez m'excuser si ce n'est pas très clair et décousu mais j'ai fait ça vite fait en vitesse avant de partir en week end de Noel. Je relirai le reste des réponses en revenant

    NB. : d'ailleurs les packages nugets j'ai essayé cette semaine et je n'ai pas trop compris non plus, mais vous semblez m'avoir bien décrit comment faire donc quand je rentrerai j'essayerai avec ce que vous m'avez dit (en espérant ne pas avoir à recharger des package nuget à chaque nouvelle création de solution (je voulais que mon controle soit de façon permanante ajouté à toutes les boites à outil de tous mes futures nouvelles solutions)

    De très bonnes fêtes à vous et je reviens le plus vite possible pour lire en détail vos messages popo et umfred !! (merci encore pour votre aide)

  8. #8
    Membre Expert
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    1 507
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 1 507
    Par défaut
    les contrôles ne sont déposables que sur un formulaire. et a priori, la méthode d'ajouter une référence a fonctionner si le contrôle est déposable sur ton formulaire.

Discussions similaires

  1. [XL-2010] Problème d'ajout de contrôles supplémentaires dans la boite à outils du UserForm
    Par TSAFACK-M dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 07/09/2016, 12h31
  2. Ajouter contrôle à la Boîte à outils
    Par menyarito dans le forum Visual Studio
    Réponses: 1
    Dernier message: 09/04/2011, 15h40
  3. [2005] Ajout d'un icone dans boite à outils
    Par mexong dans le forum Visual Studio
    Réponses: 1
    Dernier message: 21/01/2008, 14h32
  4. Réponses: 14
    Dernier message: 26/09/2007, 19h20
  5. Réponses: 2
    Dernier message: 01/04/2007, 15h28

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo