none
Ayuda con formularios modales RRS feed

  • Pregunta

  • Buenas noches a todos , les planteo mi problema.

    Estoy trabajando en un programa en donde un Formulario "A", crea uno modal "B", en este B, tengo un boton "Añadir" el cual establece la propiedad enabled en false y abre otro formulario modal "C", el problema que tengo es que al cerrar "C" no puedo habilitar de nuevo el formulario "B", se que debo trabajar con el evento formclosing en C pero no encuentro forma de llamar a B.enabled desde alli. 

    Espero que me puedan ayudar, de antemano Gracias.

    domingo, 20 de enero de 2013 5:45

Respuestas

  •         private void button1_Click(object sender, EventArgs e)
            {
                FormC c = new Form1();
                c.FormClosing += Rehabilitar;
                Enabled = false;
                c.ShowDialog();
            }
    
            private void Rehabilitar(object sender, FormClosingEventArgs e)
            {
                Enabled = true;
            }
    
    Ese sería el código en el botón del formulario B.  Básicamente se crea el nuevo formulario y se suscribe a su evento FormClosing.  Durante la ejecución de dicho evento simplemente rehabilitamos el formulario B.

    Jose R. MCP
    Code Samples

    • Marcado como respuesta DJRA domingo, 20 de enero de 2013 22:05
    • Desmarcado como respuesta DJRA domingo, 20 de enero de 2013 22:13
    • Marcado como respuesta DJRA domingo, 20 de enero de 2013 22:15
    domingo, 20 de enero de 2013 7:30
    Moderador

Todas las respuestas

  •         private void button1_Click(object sender, EventArgs e)
            {
                FormC c = new Form1();
                c.FormClosing += Rehabilitar;
                Enabled = false;
                c.ShowDialog();
            }
    
            private void Rehabilitar(object sender, FormClosingEventArgs e)
            {
                Enabled = true;
            }
    
    Ese sería el código en el botón del formulario B.  Básicamente se crea el nuevo formulario y se suscribe a su evento FormClosing.  Durante la ejecución de dicho evento simplemente rehabilitamos el formulario B.

    Jose R. MCP
    Code Samples

    • Marcado como respuesta DJRA domingo, 20 de enero de 2013 22:05
    • Desmarcado como respuesta DJRA domingo, 20 de enero de 2013 22:13
    • Marcado como respuesta DJRA domingo, 20 de enero de 2013 22:15
    domingo, 20 de enero de 2013 7:30
    Moderador
  • aui se planteo exactamente el mismo que mencionas

    http://social.msdn.microsoft.com/Forums/es/vcses/thread/edad85b2-ef11-49c6-9a6a-958597e16854

    lo que no queda claro es eso del Enable, porque se supone que si usas form modales no necesitas deshabilitar nada del form anterior ,es mas con un simple close del form aparecera el que estaba abajo y podras accederlo directamente

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina

    domingo, 20 de enero de 2013 17:11
  • Funciono Perfectamente, muchisimas gracias webjose.
    domingo, 20 de enero de 2013 22:05
  • Deseo deshabilitar el formulario mas que todo por apariencia, ademas tambien el formulario C permite añadir un nuevo registro en una base de datos, y busco que al cerrarse se actualicen los datos en un combobox en B,. Por lo que si puedo deshabilitar el formulario B, de la misma forma puedo aplicar fill al tablaadapter del formulario B justo al cerrarse C.
    domingo, 20 de enero de 2013 22:11
  • vuelvo a reptir que no tienes que deshabilitar nada si es que usas formularios modales

    es mas puedes hacer

    private void button1_Click(object sender, EventArgs e) { FormC c = new Form1(); c.ShowDialog();

    //aqui actualizas el combo }

    ya que el metodo ShowDialog() detiene la ejecucion y no continua hasta tanto se cierre el FormC

    si usas modal no encesitas ningun evento para controlar el close del form hijo

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina


    lunes, 21 de enero de 2013 2:14