2011-08-10 22 views
8

El siguiente es mi problema: Tengo un UserControl personalizado en mi proyecto de Windows Forms. Puedo diseñarlo en el diseñador muy bien. Pero tan pronto como quiera editar el formulario que contiene el control, Visual Studio 2010 se bloquea.Visual Studio 2010 se bloquea al abrir un formulario, que contiene un control de usuario, en modo de diseño

Por lo que pude ver, el Constructor y el evento de carga del control se ejecutan al cargar el formulario.

Intenté utilizar otra instancia de VS2010 para depurar el diseñador, pero no pude encontrar la ubicación donde se produce la excepción.

Al principio, mi problema parecía ser que para el objeto Threading.Timer, que uso para la inicialización de mis Objetos (es decir, cargando valores desde una Base de Datos y así sucesivamente (al intentar error más adelante acercamiento;))), Callback-Function fue ejecutado por el diseñador y, por lo tanto, intentó acceder a objetos a los que no tenía acceso mientras estaba en el modo de diseño. La inicialización del objeto Threading.Timer se encuentra en el evento de carga. Pero incluso después de comentar todo en el evento load out (excepto un bloque try catch an a Debugger.Break() Llamar para tener un punto de interrupción en la segunda instancia VS2010 para depurar el diseñador) Visual Studio sigue fallando tan pronto como quiero editar el formulario que contiene el control en modo diseño.

me trataron algunos pasos que encontré aquí sin una respuesta a mi problema: User control always crashes Visual Studio

Así que incluso si el diseñador no tiene nada que hacer al analizar la carga en eventos o el Constructor. Todavía se cuelga.

¿Alguien tiene una idea de lo que podría hacer para evitar que Visual Studio se bloquee y muestre el control de usuario correctamente en el diseñador de formularios?

El proyecto que contiene usercontrol también hace referencia a algunas bibliotecas personalizadas y un proyecto de biblioteca. No sé si el problema podría tener algo que ver con eso.

+0

pregunta relacionada ... y la respuesta que trabajó para mí: Véase también http://stackoverflow.com/a/3578917/492 –

Respuesta

3

solucionado de alguna manera mi propio problema ...

De alguna manera, tratando de depurar el modo de diseñador i engañado a mí mismo.

El establecimiento de un Debugger.Break () en la carga de eventos fue una muy mala idea al intentar abrir el formulario que contiene el control de usuario en el modo de diseño, porque si no lo está depurando Visual Studio con otra instancia de Visual Studio luego Debugger.Break() detendrá la aplicación y, por lo tanto, bloquea la instancia de Visual Studio.

Al final mediante el uso de la propiedad DesignerMode del control de usuario pude evitar que el diseñador ejecute la inicialización de mi subprocesamiento. Los objetos del temporizador podrían resolver el problema de esta manera.

0

Tuve este mismo problema (VS 2005), y la respuesta marcada tampoco me sirvió. Finalmente pude resolver el problema eliminando las carpetas "obj" y "bin" en mi solución y luego reconstruyendo el proyecto en modo de lanzamiento. Espero que esto ayude a cualquier otra persona que tenga este problema.

0

En mi problema, la solución se colgaba cada vez que abría debido a que el modo de diseño abría el archivo culpable cada vez que abrí la solución y causaba que toda la solución se bloqueara, podría haber sido causada por controles de usuario pero no pudo acceder a la solución para resolverla

Así que encontré una forma alternativa de permitirme volver a mi código ... No se trataba de profundizar mucho en la depuración de eventos del sistema, creo que puede ayudar a todos los niveles del usuario, y por lo tanto publicar.

Abrí el archivo aspx fuera de la solución, literalmente, sólo el archivo de código frontend, podría hacerse en el Bloc de notas o cualquier editor de texto incluyendo VS. comentada todo el código (código de Java no importa nada lo está llamando) guardado el archivo y se cierra. Volvió a abrir la solución. Aunque se abrió la vista de diseñador, esta vez no se bloqueó ya que no había nada que procesar. entonces sin comentar el código en secciones, diversas cantidades de código, 20 líneas, 100 líneas ... cada vez que se remonta a la vista del diseñador para comprobar si se estrellaría. Cuando había completado (no se bloquea!) Que era capaz de continuar desde donde lo había dejado. Espero que ayude!

Cuestiones relacionadas