none
Problema con mdicontainer RRS feed

  • Pregunta

  • como puedo acceder a la propiedad del MdiParent desde otro form?

    es que si lo llamo desde el propio MdiParent de esta manera funciona 

                                frmGrafComparativo frmGrafComparativo = new frmGrafComparativo();
                                frmGrafComparativo.MdiParent = this;
                                frmGrafComparativo.Show ();

    pero si intento hacer referencia desde otro form de esta manera:

                                frmGrafExcedent frmGrafExcedent = new frmGrafExcedent();
                                frmGrafExcedent.MdiParent = (Form)this.MdiParent;
                                frmGrafExcedent.Show();

    no me carga bien la propiedad del MdiParent y me la carga como un ventana extra en vez de cargármela dentro del mismo Contenedor.


    JEAS

    • Cambiado webJoseModerator viernes, 23 de noviembre de 2012 15:38 (De:Lenguaje C#)
    viernes, 23 de noviembre de 2012 13:25

Respuestas

  • Esto dentro de tu formulario

    private static NombredelFormulario m_FormDefInstance;

    public static NombredelFormulario DefInstance { get { if (m_FormDefInstance == null || m_FormDefInstance.IsDisposed) { m_FormDefInstance = new NombredelFormulario(); } return m_FormDefInstance; } set { m_FormDefInstance = value; } }

    En tu Mdi en el evento cuando llames a tu otro formulario

                NombredeFormulario.DefInstance.MdiParent = this;
                NombredeFormulario.DefInstance.Show();

    De esta manera solo se abre en el contenedor y una sola vez.

    Espero te sirva, saludos.



    • Editado Alberto_Marroquin viernes, 23 de noviembre de 2012 17:53
    • Marcado como respuesta Steban783 lunes, 3 de diciembre de 2012 21:53
    viernes, 23 de noviembre de 2012 17:52

Todas las respuestas

  • Esto dentro de tu formulario

    private static NombredelFormulario m_FormDefInstance;

    public static NombredelFormulario DefInstance { get { if (m_FormDefInstance == null || m_FormDefInstance.IsDisposed) { m_FormDefInstance = new NombredelFormulario(); } return m_FormDefInstance; } set { m_FormDefInstance = value; } }

    En tu Mdi en el evento cuando llames a tu otro formulario

                NombredeFormulario.DefInstance.MdiParent = this;
                NombredeFormulario.DefInstance.Show();

    De esta manera solo se abre en el contenedor y una sola vez.

    Espero te sirva, saludos.



    • Editado Alberto_Marroquin viernes, 23 de noviembre de 2012 17:53
    • Marcado como respuesta Steban783 lunes, 3 de diciembre de 2012 21:53
    viernes, 23 de noviembre de 2012 17:52
  • Excelente, muchas gracias

    JEAS

    lunes, 3 de diciembre de 2012 21:53