2010-01-26 13 views
20

Duplicar posible:
Is there an attribute I can add to a class so it will be edited as code, not in the designer?¿Es posible decirle a Visual Studio que no trate un archivo fuente como un "componente"?

clase con System.ComponentModel.Component en su ruta de herencia son tratados automáticamente como "componentes" dentro de Visual Studio (2008), lo que provocó un icono diferente para el archivo fuente:

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

Mientras el icono de cierva s realmente no importa, el comportamiento cambiado de doble clic es realmente molesto: en lugar de abrir el código fuente en el editor de texto, Visual Studio ahora muestra una pantalla que me anima a agregar componentes a mi clase arrastrándolos "desde la Caja de herramientas". ¡No quiero hacer eso!

Soy consciente de que puedo hacer clic derecho en el archivo fuente y elegir "Ver código", pero cada vez que me olvido de hacer esto, me quedo atascado esperando un diálogo que es absolutamente inútil. ¿Hay alguna forma de desactivar el comportamiento del componente (preferiblemente en el código fuente)?

+0

Si está atrapado esperando el diálogo, el equipo es demasiado lento para una máquina de desarrollador :) Lo mismo sucede si elige agregar un archivo de clase parcial para un formulario o control. Aunque básicamente es un archivo separado de solo código, abrirá un diseñador (y, si no recuerdo mal, no es el que corresponde al formulario real). Molesto, pero tiendo a hacer clic derecho-> Ver código de todos modos en los archivos que no tienen el símbolo de código simple. – OregonGhost

+1

Heh, ahora me lleva mucho tiempo abrir el cuadro de diálogo, pero más o menos se necesitan varios ciclos de reloj en mi cerebro para descubrir que algo salió mal :) –

+1

Además, el proyecto en cuestión es * no * winforms, así que realmente me parece injusto que VS me esté molestando con sus molestos diseñadores. –

Respuesta

40

¿No puede usar el atributo DesignerCategory para decorar su clase?

Cuando la decoración de su clase con este atributo, como se muestra a continuación, el archivo se debe abrir en 'vista de código' cuando se hace doble clic en él:

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

¡Exactamente! Sin embargo, es realmente extraño que * tengas * que usar el nombre completo para este atributo :) –

+2

Los futuros lectores notan con atención el comentario de @JørnSchou-Rode.Parece ser el caso que esto solo funciona si usa el nombre completo del atributo. – Boinst

+0

Irónicamente, Visual Studio permite establecer diferentes atributos en diferentes archivos parciales que describen la misma clase y actúa en consecuencia, pero el compilado lo considera un error. –

3

Como ya mencionó OregonGhost en su comentario, esto también ocurre si crea un archivo de clase parcial desde un formulario.

El problema es aún peor. Si se echa un vistazo a su archivo de proyecto se puede encontrar entradas para cada archivo de inclusión de esta manera:

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

Así que la solución debería ser la de eliminar la línea <SubType>...</SubType> causa parece ser la raíz de todos los problemas. Pero si elimina esta línea, guarda el archivo, lo abre en Visual Studio, lo guarda de nuevo y eche un vistazo nuevamente, la línea volverá a aparecer.

Parece que hay una sola excepción codificada dentro de Visual Studio y esta es * .Designer.cs. Entonces no hay solución para lograr este problema.

0

Puede hacer clic con el botón derecho en el archivo de origen, seleccionar "Ver código", luego hacer clic en "Establecer como predeterminado". Es un instrumento un poco contundente, pero si tiene más componentes falsos en su solución que componentes reales, entonces puede que le resulte conveniente.

Cuestiones relacionadas