Question

J'ai une solution avec de nombreux projets. Un projet contient peu de composants personnalisés. L'un de ces composants est utilisé pour afficher un titre sur une image. Nous pouvons changer la couleur de l'arrière-plan et bien d'autres choses.

Le problème est que si je décide de changer la couleur par défaut de l’arrière-plan du composant ou de modifier la position du texte, ces modifications ne seront pas répercutées dans tous les autres projets de la solution où le composant est utilisé. J'ai compilé le projet du composant et tous les autres projets. Référencez le composant par le projet.

Pour le moment, ce que je dois faire, c'est enlever le composant de l'autre projet un par un et le rajouter, puis tout va bien. Avez-vous un moyen rapide de le faire?

MISE À JOUR J'ai ajouté un CheckBox à l'intérieur de ce composant et il semble que la case à cocher soit partout! Bien! Toutefois, lorsqu'une propriété comporte une balise permettant au composant de changer (exemple, comme la couleur d'arrière-plan), elle ne modifie pas le paramètre "par défaut". valeur mais place à la place l'ancienne valeur en tant que valeur modifiée dans la propriété. Je vois donc l’ancienne valeur définie, comme si j’ajoutais manuellement, changeait la couleur dans le panneau Propriétés lorsque je ne le faisais pas.

MISE À JOUR 2 texte de remplacement http://img517.imageshack.us/img517/9112/oldonenewoneei0.png

Mise à jour 3:

Ce problème est toujours là. Dites simplement aux gens que je suis toujours curieux de trouver un moyen.

J'ai essayé quelques-unes de vos suggestions.

  1. Si je nettoie toute la solution et ne crée que le projet comportant le contrôle Personnalisé, je construis la solution. Rien ne change (pour le tester, j’ai changé la couleur du composant en jaune. Rien ne change: échec .
  2. Si je supprime la référence et la rajoute au projet, puis reconstruis la solution. Je peux voir l'ancienne couleur dans le concepteur: échouer .

J'ai mis à jour la question avec plus d'informations et une image (ci-dessus) pour ceux qui veulent essayer de m'aider.

Comme vous pouvez le constater, l'ancien " compile " du composant affiche l’arrière-plan jaune, mais lorsque j’insère un nouveau composant (à partir de la barre d’outils de gauche dans Visual Studio), je peux avoir le nouveau composant avec le supposé arrière-plan WHITE ...

Était-ce utile?

La solution

Cela est probablement dû à la références .

Vos autres projets sont probablement copier dans une référence à votre projet de composant. Vous devrez reconstruire ces autres projets pour pouvoir les recopier dans le projet de composant référencé, s'il a été modifié. Il est uniquement mis à jour au moment de la construction.

Vous pouvez en quelque sorte contourner ce problème en les intégrant dans la même solution. Dans ce cas, vous pouvez configurer vos dépendances du projet . correctement et il devrait gérer les choses pour vous la plupart du temps automatiquement. Mais avoir tout dans la même solution n'est pas toujours la bonne chose à faire.

Si vous possédez déjà une partie de la même solution ou s'il ne s'agit pas d'un problème de références, cela peut être dû à sérialisation de composant . Nous avons souvent rencontré ce problème lors du développement de contrôles personnalisés.

Autres conseils

Je suppose que le concepteur est intelligent et qu'il mémorise les paramètres du composant tels qu'ils sont dans le concepteur et les voit donc comme paramètres par défaut.

Cela ne semble pas habituel. Cliquez avec le bouton droit de la souris sur la solution et sélectionnez "Nettoyer la solution". pourrait aider (cela supprimera toutes les dll et les exécutables du répertoire bin de chaque projet, ce qui obligera à générer de nouvelles versions)

Vous pouvez également vérifier votre séquence d'ordre de construction.

Je travaille sur un projet qui a un problème similaire. J'ai constaté que si vous touchez le fichier de configuration .NET ou le fichier d'informations d'assemblage (en fonction du type de projet). Les autres projets refléteront alors le changement de composant ...

Je ne suis pas sûr de savoir pourquoi cela se produit, mais voici comment je le surmonte ...

Récemment, je suis passé à tout construire via Nant, et cela résout le problème.

Parfois, Visual Designer sérialise toutes vos propriétés dans le code-behind, même si elles ont la valeur par défaut.

Si votre composant a une couleur de fond par défaut de rouge et que vous modifiez la couleur de fond par défaut en bleu, les composants qui utilisent votre composant le redéfiniront en rouge.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top