none
Problemas con Form padres e hijos RRS feed

  • Pregunta

  • Buenas, me ha surgido un problema. He conseguido abrir una Form, de tal manera que quede dentro de la Form padre. El problema que tengo es al abrirla y cerrarla, al abrirla por primera vez y cerrarla funciona OK. El problema viene al abrirla por una segunda vez me da el siguiente error: 

    System.Exception: Attempt to load Texture2D resource 'Tile Texture', the resource is already loaded.
       en Rug.LiteGL.Texture2D.LoadResources()
       en Rug.LiteGL.BitmapTexture2D.LoadBitmap(Bitmap bitmap)
       en Rug.LiteGL.BitmapTexture2D.LoadResources()
       en Proyecto.FormView.GlControl1_Load(Object sender, EventArgs e) en C:\Desktop\Proyecto.NET\Proyecto\View\FormView.cs:línea 284

    El código que empleo para abrir el form es: 

    private void dViewToolStripMenuItem_CheckedChanged(object sender, EventArgs e)
            {
               
                if (dViewToolStripMenuItem.Checked)
                {
                   
                    mi_FormView.MdiParent = this.MdiParent;
                    mi_FormView.Show();
                }
                else
                {
                    mi_FormView.Hide();
                }
            }

    Además tengo un evento al cerrar el Form que gestiona el check del menú. 

    private void miFormView_FormClosed(object sender, EventArgs e)
            {
               
                dViewToolStripMenuItem.Checked = mi_FormView.Visible;
               
            }

    Tienen idea de por que sucede este error. Si quito esta parte del código mi_FormView.MdiParent = this.MdiParent; funciona correctamente, por lo que he deducido que es al meterlo en el contenedor. 

    Muchas gracias de antemano. 

    Saludos. 

    miércoles, 4 de abril de 2018 7:33

Respuestas

  • Finalmente conseguí que funcionara, el problema por lo que entiendo residía en la forma de ocultar el form con el HIDE. He cambiado esta parte del programa por un FORM.CLOSE(); y justo después de cerrarla vuelvo a hacer a un NEW FORM y la declaro como MdiParent y a funcionar! 

    gracias de todas maneras. 

    • Marcado como respuesta GabrieloBurja viernes, 6 de abril de 2018 14:01
    viernes, 6 de abril de 2018 14:01

Todas las respuestas

  • Buenas,

    Podrías ponernos el código entero del formulario donde accedes o utilizas ese segundo formulario? pregunto esto porque no veo donde inicializas mi_FormView o como lo haces

    Quedo a la espera de tu respuesta



    No olvides votar mi comentario si te ha ayudado y marcarlo como respuesta si ha sido la solución, con eso ayudas a mejorar mi reputación en la comunidad y a identificar la respuesta a la gente que tenga el mismo problema.

    Para obtener una respuesta lo más rápida y concisa posible, te recomiendo:

    miércoles, 4 de abril de 2018 8:49
  • hola

    lo que no veo es donde creas la instancia del form, o sea donde usas el "new", porque la asignacion del MdiParent  solo deberias hacerla una unica vez cuando creas la instancia

    dodne realices

    mi_FormView = new FormView();

    mi_FormView.MdiParent = this.MdiParent;

    asigna el MdiParenty quitalo de donde haces el show

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    miércoles, 4 de abril de 2018 12:49
  • Buenas, probé lo que comentaste pero no funciona. 

    La instancia del Form la tengo inicializada con el siguiente código: 

    private FormSecundaria mi_FormView = new FormSecundaria();

    justo debajo he añadido el código, tal y como propones: 

    mi_FormView.MdiParent = this.MdiParent;

    Pero me da varios errores tipo  CS0103 El nombre 'mi_FormView no existe en el contexto actual', El nombre MdiParent no existe en el contexto actual. etc...

    Gracias de antemano. 

    miércoles, 4 de abril de 2018 13:29
  • Finalmente conseguí que funcionara, el problema por lo que entiendo residía en la forma de ocultar el form con el HIDE. He cambiado esta parte del programa por un FORM.CLOSE(); y justo después de cerrarla vuelvo a hacer a un NEW FORM y la declaro como MdiParent y a funcionar! 

    gracias de todas maneras. 

    • Marcado como respuesta GabrieloBurja viernes, 6 de abril de 2018 14:01
    viernes, 6 de abril de 2018 14:01