2013-01-15 20 views
6

Ho ereditato un progetto che è stato modificato in un modo che è oltre me per annullare. Ogni singolo controllo sul modulo non è modificabile nel progettista se non attraverso la finestra Proprietà e ogni controllo ha un'icona nell'area sottostante (vedi immagine) nella sezione solitamente riservata per gli elementi non visibili (ad esempio DataSource). Come posso annullare questo e restituire il designer a una versione utilizzabile senza cancellare tutto e ricominciare da capo?Controlli su WinForm non modificabili in Designer

Control Icons

+0

Queste classi derivate sono queste? – Tebc

+0

Se la classe è stata pesantemente modificata manualmente, è possibile che si debba ricominciare da capo se si desidera utilizzare il designer per mantenere il modulo. Ci sono stato ... – Pete

+0

Alcuni sono i controlli che ho creato. Altri sono controlli infragistici. Uno o due sono costruiti nei controlli MS. – notJoeKing

risposta

0

Potrebbe i controlli essere bloccato? Ho eseguito il codice legacy in cui i programmatori hanno bloccato ogni singolo controllo, il che significa che non è possibile spostarli o ridimensionarli nella finestra di progettazione. In tal caso, selezionali tutti e modifica la proprietà Locked su falso (dovresti anche vedere un lucchetto nella finestra di progettazione quando li selezioni, se sono bloccati.

In caso contrario, forse è possibile creare una nuova finestra di dialogo/modulo e copiare i controlli su di esso e vedere se ciò cancella le cose.Un altro trucco potrebbe essere quello di aggiungere una seconda istanza del controllo (i) dell'utente per vedere se il controllo appena aggiunto funziona come previsto. In caso affermativo, passare attraverso il codice e il punto tutti gli eventi/logica per il nuovo controllo (noioso sì, ma può funzionare)

Inoltre, non è possibile modificare singoli sottocomandi di un controllo utente nella finestra di progettazione per il modulo/controllo in cui è stato istanziato il controllo utente. È necessario andare al progettista del controllo utente per modificare i singoli (sotto) controlli di un utente di controllo l.

enter image description here

enter image description here

+0

Il modulo non è bloccato. Facendo clic su qualsiasi controllo su UserControl si posiziona l'attenzione sull'intero UserControl e si aprono le sue proprietà nella finestra Proprietà. Proverò a creare un nuovo UC – notJoeKing

+0

Hm, quindi non puoi modificare singoli controlli? Sei sicuro di modificare il controllo utente corretto? Non è mai possibile modificare singoli sottocontrolli di un controllo utente posizionato su un altro controllo/modulo. È necessario aprire il designer del controllo utente originale per modificare qualsiasi sottocontrollo. –

+0

Hmmm ... il tuo commento sembra indicare che vedi i controlli dell'utente. Nel qual caso non c'è nulla di strano nel fatto che tu non sia in grado di modificare diverse parti di un singolo controllo utente tramite il designer. Se apri lo stesso controllo utente (anziché il modulo o anche contenente il controllo utente ** che lo utilizza **), diventa modificabile nel designer? –

0

Se i controlli Infragistics sono mostrati nella barra dei componenti, che ci potrebbero essere differenze di versione. Quello che potresti provare è aprire il file licenses.licx e rimuovere il contenuto da lì. Avete un controllo Infragistics installato sulla vostra macchina? Ci sono delle differenze dopo aver impostato la proprietà "Versione specifica" degli assembly Infragistics su "false"?

Sta succedendo solo nel progetto esistente o lo stesso comportamento è riproducibile anche in un nuovo progetto?

0

È necessario caricare la DLL contenente i controlli che non è possibile modificare nella finestra di progettazione.

i passaggi sono:

  • cliccare a destra nel pannello degli strumenti in designer di Visual Studio (in generale, per esempio).

  • selezionare Scegli elementi ...

  • dopo un po vs elementi di carico stampa Sfoglia e selezionare il dll interessato rispetto alla componet dovrebbe apparire nella griglia. Fai questo per tutte le DLL che contengono i controlli che ti interessano.

    -Assicurarsi di aver controllato il componente (utilizzare la casella di testo del filtro se si è caricato un numero di componente pari a ).

  • premere ok.

    Ora dovresti essere in grado di spostare i controlli nel designer.

0

Ho anche visto questo comportamento quando un controllo utente o un modulo è erroneamente contrassegnato come 'Componente'.

Un po 'di hacking manuale del file .csproj potrebbe essere la risposta. Apri il file di progetto in un editor di testo e trova i riferimenti al tuo controllo. Se si trova un sottotipo definito come:

<Compile Include="MyControl.cs"> 
    <SubType>Component</SubType> 
</Compile> 

Il progettista forme interpreterà come tale. È possibile modificare il "Sottotipo" in "UserControl" per risolverlo.

Problemi correlati