none
ERROR : System.OutOfMemoryException: 'Out of memory.' RRS feed

  • Pregunta

  • Hola ...

    Desarrolle una aplicacion C# WindowsForms , tengo botones para navegar  de un formulario a otro (Uso Singleton para pasar datos entre formularios) cuando e pasado de un formulario a otro un numero de 37 veces  la aplicacion me devuelve este error : System.OutOfMemoryException: 'Out of memory.'

    Como Puedo hacer para que no ocurra esta excepcion??

    Mi codigo  para pasar de Formulario padre a hijo:

                Singleton Valor = Singleton.Instance();
                Valor.SetValorIngresado(valorIngresado);
                Valor.SetValorInicio(valorInicio);
                Valor.SetValorEliminado(valorEliminado);
                Valor.SetValorSolucion(valorSolucion);
                AzulDos f = new AzulDos();
                f.Show();
                this.Hide();

    Mi Codigo para pasar de hijo a padre:

                

    Singlenton Valor = Singlenton.Instance();

    Valor.SetValorIngresado(valorIngresado); Valor.SetValorInicio(valorInicio); Valor.SetValorEliminado(valorEliminado); Valor.SetValorSolucion(valorSolucion); AzulUno f = new AzulUno(); f.Show(); this.Hide();





    EFRAIN MEJIAS C VALENCIA - VENEZUELA


    miércoles, 28 de noviembre de 2018 22:34

Respuestas

  • hola

    Pero en ese codigo estas creand instancias de forms y ocultando otras, pero siempre creas nuevas instancias, no se programa de esa forma

    desde el form padre podrias usar

    AzulDos f = new AzulDos();
    f.Show();
    this.Hide();

    pero desde el form hijo esta mal usar

    AzulUno f = new AzulUno();
    f.Show();
    this.Hide();

    se supone que accedas al form que invoco a ese form, solo debes hacer

    this.Close();

    solo eso, no necesitas instanciar nuevamente el form padre

    la idea es que en el form padre tomes el evento Closing del form hijo y realices el this.Show()

    Comunicar Formularios

    ademas no uses singleton para pasar valores desde form que se comunican directo

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    miércoles, 28 de noviembre de 2018 22:54

Todas las respuestas

  • hola

    Pero en ese codigo estas creand instancias de forms y ocultando otras, pero siempre creas nuevas instancias, no se programa de esa forma

    desde el form padre podrias usar

    AzulDos f = new AzulDos();
    f.Show();
    this.Hide();

    pero desde el form hijo esta mal usar

    AzulUno f = new AzulUno();
    f.Show();
    this.Hide();

    se supone que accedas al form que invoco a ese form, solo debes hacer

    this.Close();

    solo eso, no necesitas instanciar nuevamente el form padre

    la idea es que en el form padre tomes el evento Closing del form hijo y realices el this.Show()

    Comunicar Formularios

    ademas no uses singleton para pasar valores desde form que se comunican directo

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    miércoles, 28 de noviembre de 2018 22:54
  • aqui lo explico

     Hacer visible un Form (oculto) desde otro

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    miércoles, 28 de noviembre de 2018 22:57
  • Hola,  como has implementado el patrón de singleton? Puedes mostrar esa clase ?tal vez no lo hayas hecho bien 

    Si se solucionó tu consulta no olvides marcar la respuesta. Si te ayudó, vótala como útil. Saludos

    miércoles, 28 de noviembre de 2018 23:04
    Moderador
  • hola Sergio

    Si revisas el codigo que publico veras que no es el singleton el problema, sino que desde el form padre realiza el "new" del form hijo y desde el form hijo realiza el "new" del form padre, dejando por cada llamada form tras form ocultos

    llegado a un punto tiene tantos forms ocultos que genera el exception

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    miércoles, 28 de noviembre de 2018 23:14