Domanda

Ho una soluzione con molti progetti.Un progetto contiene pochi componenti personalizzati.Uno di questi componenti viene utilizzato per visualizzare un titolo su un'immagine.Possiamo cambiare il colore dello sfondo e molte altre cose.

Il problema è che SE decido di cambiare il colore predefinito dello sfondo del componente o di cambiare la posizione del testo, questa modifica non si rifletterà in tutti gli altri progetti della soluzione in cui viene utilizzato il componente.Ho compilato il progetto del componente e tutti gli altri progetti fanno riferimento al componente tramite il progetto.

Per il momento quello che devo fare è togliere uno per uno il componente dall'altro progetto e aggiungerlo di nuovo, poi va tutto bene.Hai un modo rapido per farlo?

AGGIORNAMENTOHo aggiunto una casella di controllo all'interno di quel componente e sembra che la casella di controllo sia ovunque!Bene!Ma quando una proprietà ha un tag che consente al componente di cambiare (ad esempio come il colore di sfondo), non cambia il valore "predefinito" ma inserisce invece il vecchio valore come valore modificato nella proprietà.Quindi, vedo il vecchio valore impostato come se aggiungo manualmente il colore modificato nel pannello Proprietà quando non ho...

AGGIORNAMENTO 2 testo alternativo http://img517.imageshack.us/img517/9112/oldonenewoneei0.png

Aggiornamento 3:

Questo problema è ancora qui.Giusto per far sapere alla gente che sono ancora curioso di trovare un modo.

Ho provato alcuni dei tuoi suggerimenti.

  1. Se pulisco tutta la soluzione e creo solo il progetto che ha il controllo personalizzato, creo la soluzione.Non cambia nulla (per testarlo, ho cambiato il colore del componente in Giallo.Non cambia nulla : fallire.
  2. Se rimuovo il riferimento e lo aggiungo nuovamente al progetto, quindi ricostruisco la soluzione.Posso vedere il vecchio colore nel designer: fallire.

Ho aggiornato la domanda con maggiori informazioni e un'immagine (sopra) per coloro che vogliono provare ad aiutarmi.

Come puoi vedere, la vecchia "compilazione" del componente mostra lo sfondo Giallo ma quando inserisco un nuovo componente (dalla barra degli strumenti di sinistra in Visual Studio) posso avere il nuovo componente con il presunto sfondo BIANCO...

È stato utile?

Soluzione

Ciò è molto probabilmente dovuto a Riferimenti.

Probabilmente gli altri tuoi progetti copiare in un riferimento al progetto del tuo componente.Dovrai ricostruire questi altri progetti affinché possano copiarli nuovamente nel progetto del componente di riferimento, se è cambiato.Viene aggiornato solo in fase di compilazione.

Puoi in qualche modo aggirare questo problema rendendoli parte della stessa soluzione.In tal caso, puoi configurare il tuo dipendenze del progetto correttamente e dovrebbe gestire le cose per te per lo più automaticamente.Ma avere tutto nella stessa soluzione non è sempre la cosa giusta da fare.

Se li hai già parte della stessa soluzione o non è un problema di riferimenti, potrebbe essere dovuto a serializzazione dei componenti.Ci siamo imbattuti spesso in questa stranezza durante lo sviluppo di controlli personalizzati.

Altri suggerimenti

La mia ipotesi è che il designer sia intelligente e ricordi le impostazioni del componente così come le hai nel designer e quindi lo veda come predefinito.

Questo non sembra normale.Fare clic con il pulsante destro del mouse sulla soluzione e premere "Pulisci soluzione" potrebbe essere d'aiuto (eliminerà tutte le DLL e gli eseguibili dalla directory bin di ciascun progetto, costringendo a verificarsi nuove build)

Potresti anche voler controllare la sequenza dell'ordine di costruzione.

Lavoro su un progetto che presenta un problema simile, ho scoperto che se tocchi il file di configurazione .NET o il file di informazioni sull'assembly (a seconda del tipo di progetto).Gli altri progetti rifletteranno quindi il cambiamento dei componenti...

Non sono sicuro del motivo per cui ciò accade, ma è così che l'ho superato...

Recentemente sono passato alla creazione di tutto tramite Nant e questo risolve completamente il problema.

A volte Visual Designer serializza tutte le proprietà nel code-behind, anche se hanno il valore predefinito.

Se il tuo componente ha uno sfondo predefinito rosso e modifichi lo sfondo predefinito in blu, i componenti che utilizzano il tuo componente lo riporteranno in rosso.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top