variable tipo remarks initialize inicializar example c# .net winforms visual-studio-2010 windows-forms-designer

tipo - remarks c#



La variable ''nombre_variable'' no está declarada o nunca fue asignada (11)

Tengo una pregunta relacionada con el error en el título. Estoy trabajando con c # y Visual Studio 2010.

Tengo un formulario declarado como "clase pública FormularioGeneral: Formulario", que es la base para el resto de los formularios en mi solicitud. Cuando intento acceder a la Vista del diseñador, aparece este error varias veces, como se puede ver en la imagen:

Todos los errores hacen referencia a las líneas dentro del método InitializeComponent, donde el valor se asigna a una propiedad como esta:

[...] this.PanelMargenIzquierdoCapaBase.BackColor = m_ColorCapaBase; [...]

Pero todas las variables se declaran en la misma clase que las propiedades de solo lectura y todas se asignan dentro de un método que se llama en el constructor.

Declaración de propiedades:

protected Color m_VariableName; public Color VariableName { get { return m_VariableName; } set { } }

Código del constructor:

public FormularioGeneral() { ConfigurarUI(); AccionesConstructor(); InitializeComponent(); PostInicializacionComponentes(); EstablecerIcono(); InicializarLocalizacionFormulario(); }

Método de configuración:

public virtual void ConfigurarUI() { [...] m_AltoBordeSuperiorCapaBase = 30; m_AltoBordeInferiorCapaBase = 7; m_AnchoBordesLateralesCapaBase = 7; m_ColorCapaBase = Color.FromArgb(50, 100, 150); m_ColorTextoCapaBase = Color.White; m_ColorTextoBotonAplicacion = Color.Black; m_FuenteTextoIzquierdoCapaBase = new System.Drawing.Font("Verdana", 11.0F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); m_FuenteTextoCentroCapaBase = new System.Drawing.Font("Verdana", 14.0F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); [...] }

Por lo tanto, hasta donde sé, todas las variables que dan los errores se declaran correctamente y tienen un valor asignado antes de que se llame a la función InitilizeComponent.

Estoy atascado en este punto y no sé qué hacer para resolver el problema. Espero que algunos de ustedes me puedan ayudar con este problema.


En mi caso, agregué un control de terceros en mi barra de herramientas (a través de un archivo .dll) y dibujé uno de ellos en mi formulario. Y por alguna razón, mi barra de herramientas elimina este control de terceros del grupo general (lo agregué en el grupo general), por lo que VS no puede encontrar este control. Esto es lo que hice para slove este problema:

  1. Añade este control a la barra de herramientas.
  2. Limpia la solucion
  3. Reconstruir la solución

Vuelva a dibujar el control si es necesario.


En mi caso, tuve un proyecto de Windows Forms más antiguo donde InitializeComponents() comenzó así:

private void InitializeComponent() { var componentResourceManager = new ComponentResourceManager(typeof(MyForm)); ...

Esto resultó en un mensaje de error más adelante al acceder al componentResourceManager dentro de InitializeComponent() :

La variable ''componentResourceManager'' no está declarada o nunca fue asignada.

Al compararlo con un formulario recién creado, vi que era similar a mi formulario que no funciona, excepto por una cosa:

La variable no fue nombrada componentResourceManager sino simplemente resources .

Solución

Después de hacer un cambio de nombre en mi variable para tener también los resources nombre, todo funciona correctamente.

El Diseñador de Windows Forms en Visual Studio 2017 abrió el formulario correctamente.


Este error se produce para mí al crear un control de terceros en InitializeComponent () al que se llama desde el constructor de formularios. Cuando lo creé después de InitializeComponent () funciona bien para mí.

public MyForm() //Form constructor { InitializeComponent(); //Create/initialize third party control here with new operator }


Estoy trabajando con WPF dentro de Windows Forms.

Alojé mi control de usuario de WPF en un host de elementos de Windows Forms. Debido a eso, cuando InitializeComponent () se llamó, ejecuté el código antes de llegar a InitializeComponent () de mi control WPF. Difícil.

Así que lo saqué de mi constructor, Clean Build, Rebuild, Restart VS y todo funciona como se esperaba. Finalmente.


Me encontré con este error porque mi proyecto es x64 solamente. Al parecer, Visual Studio, al ser una aplicación de 32 bits, no puede cargar formularios ni controles compilados a 64 bits en el diseñador. Tiene sentido total, pero el error no le da ninguna indicación de que es el problema.

Ver la respuesta a Visual Studio Designer en x64 no funciona .

La solución consiste en cambiar su proyecto a Cualquier CPU al diseñar, y luego al construir.


No ponga nada que no sea InitializeComponent(); en el constructor. Puedes poner el código desde allí en eventos como Load() .


Por lo tanto, he tenido el mismo problema en el pasado, para corregirlo hice lo siguiente:

  • Solución → Solución limpia;
  • Construir → Reconstruir Solución;
  • Cierre Visual Studio, vuelva a abrir.

Muchas gracias a Marshall Belew!


Sobre las variables, ¿puedes simplemente inicializarlas en la declaración? Creo que eso sería suficiente, incluso si cambia el valor más adelante. Por lo que veo, el compilador no puede verificar si los ha inicializado o no porque no está directamente en el código del constructor, se está realizando en un método virtual que se evaluará solo en tiempo de ejecución.

Entonces, en lugar de:

protected Color m_VariableName; public Color VariableName { get { return m_VariableName; } set { } }

Hacer:

protected Color m_VariableName = Color.White; // Or null public Color VariableName { get { return m_VariableName; } set { } }

Y un comentario: debe evitar las llamadas virtuales en el constructor, lo que puede ocasionar errores ocultos en su aplicación. Compruébalo here .


Tal vez el error se produce debido a su código de constructor. Coloque InitializeComponent(); Al comienzo del constructor así:

public FormularioGeneral() { InitializeComponent(); ConfigurarUI(); AccionesConstructor(); PostInicializacionComponentes(); EstablecerIcono(); InicializarLocalizacionFormulario(); }

Explicación:

Las variables se inicializan en ese método.


Tuve el mismo problema y la limpieza y la reconstrucción no funcionaron para mí.

En mi caso, el problema se debió a que el diseñador de Visual Studio cargó los archivos DLL a los que se hacía referencia desde el GAC en lugar de cargarlos desde el directorio <HintPath> especificado en el archivo .csproj. Las DLL en el GAC no tenían la misma versión que las DLL almacenadas localmente.

Cuando actualicé las DLL en el GAC para tener la misma versión, todo funcionó bien otra vez.


Tuve este problema cuando mi control de usuario tenía algún código en el constructor que estaba relacionado con el recurso de tiempo de ejecución. Agregué el cheque nulo y lo arreglé.

InitializeComponent(); if (MyConfig!= null) { this.label2.Text = MyConfig.text1; this.label3.Text = MyConfig.text2; this.label1.Text = MyConfig.text3; }