2012-01-14 12 views
11

ho questoIl foo classe può essere progettato, ma non è la prima classe nel errore di file

Il foo classe può essere progettato, ma non è la prima classe nel file

Errore

dopo l'aggiunta della classe foo derivata da TextBox nel mio file C#. Come posso passarlo, è molto fastidioso.

EDIT:

voglio avere più classi nel mio file. Voglio avere alcune classi derivate da TextBox che accettano specifici tipi di input. Non sto usando il designer.

EDIT2:

class NumericTextBox : TextBox 
{ 
    protected override void OnTextChanged(EventArgs e) 
    { 
     ... 
    } 
} 
+0

Invia il tuo codice in modo che possiamo verificarlo. –

+0

FYI, Se si ottiene l'errore anche dopo aver posizionato la classe nella parte superiore del file come unica classe, è il momento di riavviare Visual Studio. –

risposta

10

È necessario disporre di più classi nel file. Spostare la classe nel file in modo che possa essere il primo della classe in quel file

Visual Studio richiede classe che è stato responsabile per la creazione di file di essere in classe superiore o prima di tale file

+0

Ho creato il file come file sorgente. Ho avuto alcune lezioni e dopo ho aggiunto la classe foo: TextBox – Felics

+0

Funziona ma non voglio farlo. Voglio solo disabilitare lo stupido designer. – Felics

+0

Ho appena scritto questo: protetto override void OnTextChanged (EventArgs e) per convalidare il testo ... È un normale TextBox con alcune convalide ... – Felics

2

Il messaggio di errore è abbastanza chiaro. Hai un file .cs contenente più classi. Spostare ogni classe nel proprio file e si dovrebbe andare bene.

MODIFICA: se si desidera mantenere tutte le classi nello stesso file, inserire la classe foo nella parte superiore. L'ordine è importante: per convenzione, il progettista usa la prima classe nel file per i controlli. Non è possibile avere più classi di controllo nello stesso file senza visualizzare questo errore.

+1

Non uso il designer. Non voglio usare il designer. C'è puro codice lì. Ho creato il file come file di codice. – Felics

+1

Se non si utilizza il designer, non si dovrebbe visualizzare questo messaggio di errore. Il designer è ciò che lo mostra. –

7

Se don 't bisogno di design del tutto questo attributo di classe dovrebbe fare il trucco:

[System.ComponentModel.DesignerCategory("")] 
+0

Questa è la soluzione che ho trovato è ciò che Felics sta cercando. Anch'io ho del codice, come ServiceBase, che non ho mai avuto bisogno di "progettare". Ho usato questa soluzione e risolve le cose per me. –

0

Sia il file class.Designer.cs o il file class.cs avrà un'altra classe definita nella parte superiore di esso. Poiché la classe è definita in entrambi i file come classe partial, assicurati di controllare entrambi i file!

0

Inoltre, il nome del file deve corrispondere al nome della classe. Ad esempio, il file myClass.designer.cs prevede la classe myClass, quindi controlla gli errori di battitura.

Problemi correlati