2010-01-26 13 views
20

Eventuali duplicati:
Is there an attribute I can add to a class so it will be edited as code, not in the designer?È possibile dire a Visual Studio di non trattare un file sorgente come un "componente"?

classe con System.ComponentModel.Component nel loro percorso di successione vengono automaticamente trattati come "componenti" all'interno di Visual Studio (2008), innescando un'icona diversa per il file di origine:

http://i48.tinypic.com/1z23wvn.png

Mentre l'icona doe Non è molto importante, il doppio comportamento modificato è davvero fastidioso: invece di aprire il codice sorgente nell'editor di testo, Visual Studio ora mostra uno schermo che mi incoraggia ad aggiungere componenti alla mia classe trascinandoli "dalla Toolbox". Non voglio farlo!

Sono consapevole che posso fare clic con il pulsante destro del mouse sul file sorgente e scegliere "Visualizza codice", ma ogni volta che mi dimentico di farlo, sono bloccato in attesa di un dialogo assolutamente inutile. C'è un modo per disabilitare il comportamento del componente (preferibilmente nel codice sorgente)?

+0

se sei bloccato in attesa della finestra di dialogo, il computer è troppo lento per una macchina sviluppatore :) La stessa cosa accade se si sceglie di aggiungere un file di classe parziale per un modulo o un controllo. Sebbene sia fondamentalmente un file solo codice separato, aprirà un designer (ed è, se non ricordo male, quello per la forma attuale). Fastidioso, ma tendo comunque a fare clic con il tasto destro del mouse su> Visualizza codice su file che non hanno il simbolo del codice semplice. – OregonGhost

+1

Heh, ora è che ci vuole un sacco di tempo per aprire il dialogo, ma più mi ci vogliono diversi cicli di clock nel cervello per capire che qualcosa è andato storto :) –

+1

Inoltre, il progetto in questione è * non * winforms, quindi trovo davvero ingiusto che VS mi infastidisca con i suoi fastidiosi designer. –

risposta

40

Non riesci a utilizzare l'attributo DesignerCategory per decorare la tua classe?

quando decorare la vostra classe con questo attributo, come mostrato di seguito, il file dovrebbe aprire in 'vista di codice', quando si fa doppio clic su di esso:

[System.ComponentModel.DesignerCategory("Code")] 
public class MyComponent 
{ 
} 
+5

Esattamente! E 'davvero strano che tu * abbia * di usare il nome completo per questo attributo, però :) –

+2

I futuri lettori annotano attentamente il commento di JørnSchou-Rode.Sembra che questo funzioni solo se si utilizza il nome completo dell'attributo. – Boinst

+0

Ironia della sorte, Visual Studio consente di impostare diversi attributi su diversi file parziali che descrivono la stessa classe e agisce di conseguenza, ma il compilato considera questo un errore. –

3

Come già accennato in OregonGhost nel suo commento, ciò accade anche se si crea un file di classe parziale da un modulo.

Il problema è ancora più grave. Se si dà un'occhiata nel vostro file di progetto si possono trovare le voci per ogni file sono in questo modo:

<Compile Include="FormMain.cs"> 
    <SubType>Form</SubType> 
</Compile> 

Quindi la soluzione dovrebbe essere quello di eliminare la riga <SubType>...</SubType> causa sembra essere la radice di tutti i problemi. Ma se elimini questa linea, salva il file, aprilo in Visual Studio, salvalo di nuovo e guarda di nuovo, la linea riappare!

Sembra che ci sia solo un'eccezione codificata in Visual Studio e questo è * .Designer.cs. Quindi non esiste una soluzione per risolvere questo problema.

0

È possibile fare clic con il tasto destro del mouse sul file sorgente, selezionare "Visualizza codice", quindi fare clic su "Imposta come predefinito". È uno strumento un po 'smussato, ma se nella tua soluzione ci sono più componenti falsi rispetto ai componenti reali, potresti trovarlo conveniente.

Problemi correlati