2010-06-11 21 views
5

Tengo un UserControl que es parte de una biblioteca de clases. Hago referencia a este proyecto desde mi solución. Esto agrega un control del proyecto al que se hace referencia a mi caja de herramientas. Agrego el control a un formulario. Todo se ve bien, compilo todo y corro. Perfecto ...Error al mostrar un WinForm en modo Diseño con un control personalizado en él

Pero cuando cierro el .frm con el control y lo vuelvo a abrir, aparece este error. El código continúa ejecutándose.

Puede tener algo que ver con espacios de nombres. El espacio de nombre original era simplemente "Diseño" y esto era ambiguo y conflictivo, así que decidí cambiarle el nombre. Creo que fue cuando comenzaron mis problemas.

To prevent possible data loss before loading the designer, the following errors must be resolved: 



    2 Errors 

    Ignore and Continue 
    Why am I seeing this page? 





    Could not find type 'Besi.Winforms.HtmlEditor.Editor'. Please make sure that the assembly that contains this type is referenced. If this type is a part of your development project, make sure that the project has been successfully built using settings for your current platform or Any CPU.  




Instances of this error (1) 

1. There is no stack trace or error line information available for this error. 


Help with this error 

Could not find an associated help topic for this error. Check Windows Forms Design-Time error list 


Forum posts about this error 

Search the MSDN Forums for posts related to this error 






    The variable 'Editor1' is either undeclared or was never assigned.  Go to code 





Instances of this error (1) 

1. BesiAdmin frmOrder.Designer.vb Line:775 Column:1 Show Call Stack 

at System.ComponentModel.Design.Serialization.CodeDomSerializerBase.Error(IDesignerSerializationManager manager, String exceptionText, String helpLink) 
at System.ComponentModel.Design.Serialization.CodeDomSerializerBase.DeserializeExpression(IDesignerSerializationManager manager, String name, CodeExpression expression) 
at System.ComponentModel.Design.Serialization.CodeDomSerializerBase.DeserializeExpression(IDesignerSerializationManager manager, String name, CodeExpression expression) 
at System.ComponentModel.Design.Serialization.CodeDomSerializerBase.DeserializeStatement(IDesignerSerializationManager manager, CodeStatement statement) 

Help with this error 

MSDN Help 


Forum posts about this error 

Search the MSDN Forums for posts related to this error 

Respuesta

5

Algunas cosas para probar:

  • Compruebe el archivo de frmOrder.Designer.vb de errores, o posiblemente utilizando el espacio de nombres mal. Sé que probablemente dice que no toques el archivo en un comentario, pero a veces tienes que hacerlo. Sólo sé cuidadoso.

  • Intente limpiar/reconstruir su proyecto si puede.

  • Elimine y vuelva a agregar la referencia a su dll (y asegúrese de estar haciendo referencia a la versión correcta con el espacio de nombres correcto). Tal vez algo está almacenado en caché que no debería ser.

  • Salir y reiniciar VS.

+1

Sin errores.Todo compila y funciona bien. Es solo el modo de diseño que falla. – ChadD

+0

Todas las recomendaciones de sonido y todas las cosas que probé sin suerte. – ChadD

+0

Difícil de decir entonces, aunque verificaría cuidadosamente el archivo del diseñador una vez más ... 'Besi.Winforms.Html.Editor.Editor' es correcto, ¿verdad? –

1

En mi caso, necesitaba construir el proyecto antes de que el diseñador pudiera ver el objeto personalizado. Desafortunadamente, estaba construyendo 64 bits y depurando en una computadora de 32 bits, por lo que realmente no estaba reconstruyendo en el mismo modo. Una vez que esto se resolvió, el diseñador pudo mostrar mis objetos personalizados sin queja.

0

En mi caso, parecía que hacer que el archivo .resx se pudiera escribir (originalmente era de solo lectura debido a SSC) solucionó el problema. Curiosamente, sin embargo, finalmente no se realizaron cambios en el archivo de recursos.

Limpiar, reconstruir, reiniciar, eliminar las carpetas/bin y/obj no parece haber ninguna diferencia.

1

Mi problema era con System.Windows.Forms, así que lo eliminé de las referencias, compilé y luego lo agregué de nuevo. El formulario ahora aparece en su diseñador. Problema resuelto.

0

En mi caso, el mensaje de error en el diseñador mencionó una DLL particular. Elimino esa DLL de "Referencias" y luego la vuelvo a agregar. El diseñador de formularios funciona por un tiempo, luego, si vuelvo a abrir el formulario (o control).

Pero el problema vuelve, y tengo que repetirlo.

+0

Esto es lo más cercano a mi problema. VS estaba agregando una referencia a la DLL de uno de los proyectos de soluciones además de la referencia del proyecto existente. Eliminar la referencia a la DLL y la reconstrucción me solucionó. – ScottN

1

Tuve este problema y encontré este artículo además de otros.

La suma de lo que hice fue cerrar VS, eliminar archivos .SUO y directorios bin/obj: esto resolvió varios, pero no todos los errores de diseñador. También miré mi archivo Designer.cs y, en mi caso, encontré algunas declaraciones de variables que NO estaban prefijados con espacios de nombres (es decir, privado TabControl tabs_main; en lugar de privado System.Windows.Forms.TabControl tabs_main;), así que edité el archivo de diseño para incluir el espacio de nombres completo y -construido. Eso resolvió este problema para mí.

Cuestiones relacionadas