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

C# Discussion :

Designer qui ne réactualise pas une ClassLibray


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2011
    Messages
    107
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2011
    Messages : 107
    Par défaut Designer qui ne réactualise pas une ClassLibray
    Bonjour,

    Situation de départ:
    J'ai créer une librairie de classe (ClassLibrary2) contenant une classe Component (RichTextBoxRapide.cs) dont j'ai réglé la couleur de fond en bleue.
    En parallèle, j'ai créé une application WinForm (Developpez) avec la classe (Form1.cs)
    J'ai ensuite ajouter dans les références de l'application (Devellopez), la librairie (ClassLibrary2.dll) située dans la bibliothèque de classe.
    Et ajouter le RichTextBoxRapide sur Form1 à partir de la boite à outil.
    Le RichTextBoxRapide a un fond bleu au départ de la compilation.
    La couleur du RichTextBoxRapide est bleue et donc OK à l'exécution.

    Là où ça se complique:
    Je modifie la couleur de fond du RichTextBox en rouge dans le code de RichTextBoxRapide.cs
    Je Rebuild tous les projets.

    Et là où ça bloque:
    Aucune modification de la couleur de fond du RichBoxText dans le designer de Form1 !
    Et aussi aucune modification de couleur à l'exécution sur la Form1 !

    Pourquoi mon nouveau code de couleur n'est pas du tout pris en compte?

    Je ne comprends pas.

    Et vous?

    Class1.cs dans ClassLibrary2:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
     
    namespace ClassLibrary2
    {
        public class Class1
        {
        }
    }
    Dans RichTextBoxRapide.cs:
    Avant: BackColor = Color.CadetBlue;
    Après: BackColor = Color.Red;

    RichTextBoxRapide.cs dans ClassLibrary2:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
     
    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Diagnostics;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using System.Drawing;
     
    namespace ClassLibrary2
    {
        public partial class RichTextBoxRapide : System.Windows.Forms.RichTextBox
        {
            public RichTextBoxRapide()
            {
                InitializeComponent();
                BackColor = Color.CadetBlue; // Avant puis après:
             // Backcolor = Color.Red , puis Rebuild , et pas de modification dans le designer de Form1, ni à l'exécution (?)
            }
     
            public RichTextBoxRapide(IContainer container)
            {
                container.Add(this);
                InitializeComponent();
            }
        }
    }
    Form1.cs dans Developpez:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
     
    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using System.Windows.Forms;
     
    namespace Developpez
    {
        public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
            }
        }
    }

  2. #2
    Membre extrêmement actif
    Inscrit en
    Avril 2008
    Messages
    2 573
    Détails du profil
    Informations personnelles :
    Âge : 65

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 573
    Par défaut
    Bonjour

    Quant tu fais Ajouter la Reference :
    -le fichier Library.Dll est copie dans le dossier de Devellopez ...et c'est de cette dll qu'est extrait le code utilize par Dellopez...

    Quant tu fais Regenerez Tout Library.dll est regenere ansi Devellopez.exe sont bien regeneres ...ma la copie de la dll n'est pas faite

    Remede du docteur Sqolli (Galien le sicilien en arabe):
    -suprrimer la reference à Library.dll puis la rajouter à nouveau.....

    bon code...

  3. #3
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2011
    Messages
    107
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2011
    Messages : 107
    Par défaut
    Donc pour toi la solution consiste, manuellement, à redéfinir la librairy.dll dans les références à chaque modification du code.

    C'est pas très pratique car il faut alors rajouter, puis repositionner à nouveau le control sur la Form1 en mode design et donc c'est pas pratique du tout.

    N'existe t-il pas un réglage dans Visual Studio pour relier dynamiquement la nouvelle compilation de façon transparente en mode Design et lors de l'exé ?

  4. #4
    Membre extrêmement actif
    Inscrit en
    Avril 2008
    Messages
    2 573
    Détails du profil
    Informations personnelles :
    Âge : 65

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 573
    Par défaut
    re
    un detour ou "workaround" c'est de reference directement le fichier .dll dans le dossier Debug du projet Library ...
    Le Designer de VS esta ansi fait.........
    Amen ....

  5. #5
    Expert confirmé

    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Septembre 2006
    Messages
    3 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Septembre 2006
    Messages : 3 580
    Par défaut
    Salut

    Enfin, normalement, la solution la plus simple est, si les deux projets sont dans la même solution de référencer non pas une dll via l'explorer de VS mais
    plutôt d'ajouter une référence à un des projets de la solution.

    Comme ça, t'es sur que tu n'auras pas de soucis

  6. #6
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2011
    Messages
    107
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2011
    Messages : 107
    Par défaut
    J'ai dans l'explorateur de solution:

    solution 'Developpez'(2 projets)
    ->ClassLibray2 (bibliothèque de) classe
    ...
    ->Références
    ->Class1.cs
    ->RichTextBoxRapide.cs
    ->Developpez
    ...
    ->Références (*)
    ClassLibray2(assembly)
    ...
    ->Form1.cs
    ->Form1.Designer.cs
    ...

    Questions:
    pour MABROUKI -> j'ai référencer le fichier "...\Devellopez\RichTextBoxRapide\ClassLibrary2\ClassLibrary2\bin\Debug\ClassLibrary2.dll" dans les références du projet "Developpez" et aucune réactualisation du composant RichTextBox dans Form1 en mode designer puis exé (?)
    pour theMonz31 -> je ne comprend ton passage "...plutôt d'ajouter une référence à un des projets de la solution.". Car je ne vois pas d'autre manière via l'explorateur de solution de référencer (*) "ClassLibray2.dll" dans le projet "Développez" (?)

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 8
    Dernier message: 19/11/2008, 09h06
  2. [RegEx] Je recherche une chaîne qui ne contient pas une certaine chaîne
    Par johann51 dans le forum Langage
    Réponses: 5
    Dernier message: 19/03/2008, 16h42
  3. Réponses: 3
    Dernier message: 20/02/2007, 15h48
  4. un module qui ne contient pas une fonction qu'il contient :?
    Par duplo dans le forum Général Python
    Réponses: 12
    Dernier message: 15/08/2006, 19h30
  5. Div qui n'a pas une hauteur minimum
    Par Pumpkins dans le forum Balisage (X)HTML et validation W3C
    Réponses: 4
    Dernier message: 26/09/2005, 09h20

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