2011-01-18 14 views
7

A class diagramPerché Visual Studio ha contrassegnato la mia classe come componente?

Ho copiato alcune classi in questo progetto, altre da altri progetti. Ad un certo punto VS ha segnato Class1 come componente (si può vedere dall'icona mostrato nello screenshot sopra). Class2 è OK. Non c'è alcuna differenza nelle Proprietà file e non interessante differenza nel codice tra Class1 e Class2 (* tranne vedi modifica sotto)

Non si ferma il codice da compilare o in esecuzione. È in realtà un problema? E è scomodo in quanto l'IDE tenta di aprire la finestra di progettazione, se si fa doppio clic sul file.

Come accade questo, e come rimediare?

Modifica: In realtà, ci sono differenze interessanti nella finestra del codice. Almeno, ci deve essere, dal momento che la rimozione di un grande pezzo di codice fa sì che il Solution Explorer per ripristinare il file in un file di classe . Ripristinare il pezzo e il file torna ad essere un componente . Attualmente ... indagando.

risposta

12

non sono sicuro perché lo fa questa cosa, ma so come sbarazzarsi di esso. Prima la classe put:

[System.ComponentModel.DesignerCategory("Code")] 

Dovrebbe funzionare.

+0

funziona! Grazie. – hawbsl

+0

È necessario avere l'intero qualificatore presente nell'attributo (come indicato sopra), anche se si dispone di un'istruzione using per System.ComponentModel. –

3

Per il "perché" parte della tua domanda (tratto da this post che sembra essere un duplicato):

classe con System.ComponentModel.Component nel loro percorso eredità sono trattati automaticamente come "componenti" in Visual Studio (2008), attivando un'icona diversa per il file sorgente:

Problemi correlati