2012-01-14 16 views
11

He esteLa clase foo puede ser diseñado, pero no es la primera clase en el error de archivo

La clase foo puede ser diseñado, pero no es la primera clase en el archivo

error después de agregar la clase foo derivada de TextBox en mi archivo C#. Cómo puedo pasarlo, es muy molesto.

EDIT:

Quiero tener múltiples clases en mi archivo. Quiero tener algunas clases derivadas de TextBox que aceptan tipos específicos de entrada. No estoy usando el diseñador.

Edit2:

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

Publique su código para que podamos verificarlo. –

+0

FYI, si obtiene el error incluso después de colocar su clase en la parte superior del archivo como la única clase, es hora de reiniciar Visual Studio. –

Respuesta

10

Debe tener más de una clase en su archivo. Mueva su clase en el archivo de forma que puede ser la primera clase en ese archivo

Visual Studio requiere clase que fue responsable de la creación de archivo para estar en la clase superior o primera de ese archivo

+0

Creé el archivo como archivo fuente. Tuve algunas clases y después de eso agregué la clase foo: TextBox – Felics

+0

Funciona, pero no quiero hacer eso. Solo quiero deshabilitar al estúpido diseñador. – Felics

+0

Acabo de escribir esto: anulación protegida anulada OnTextChanged (EventArgs e) para validar el texto ... Es un TextBox normal con algunas validaciones ... – Felics

2

El mensaje de error es bastante claro. Usted tiene un archivo .cs que contiene múltiples clases. Mueve cada clase a su propio archivo y deberías estar bien.

EDITAR: Si insiste en tener todas las clases en el mismo archivo, coloque la clase foo en la parte superior. El orden importa: por convención, el diseñador utiliza la primera clase en el archivo para los controles. No puede tener múltiples clases de control en el mismo archivo sin ver este error.

+1

No uso diseñador. No quiero usar diseñador Es código puro allí. Creé el archivo como archivo de código. – Felics

+1

Si no usa el diseñador, entonces no debería estar viendo este mensaje de error. El diseñador es lo que lo muestra. –

7

Si Don 't necesita diseñador por completo este atributo de clase debe hacer el truco:

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

Esta es la solución que creo que es lo que busca Felics. También tengo algún código, como ServiceBase, que nunca necesitaré para "diseñar". Usé esta solución y me arregla las cosas. –

0

Puede ser que su archivo class.Designer.cs O su archivo class.cs tendrán otra clase definida en la parte superior de la misma. Dado que la clase se define en ambos archivos como una clase partial, asegúrese de verificar ambos archivos.

0

También, el nombre del archivo debe coincidir con el nombre de la clase. Por ejemplo, el archivo myClass.designer.cs espera la clase myClass Entonces, compruebe si hay errores tipográficos.

Cuestiones relacionadas