none
No funciona el e.cancel = true para impedir que se cierre la windowsform en el evento formclosed RRS feed

  • Pregunta

  • Private Sub Ventana_FormClosed(ByVal sender As System.Object, ByVal e As System.Windows.Forms.FormClosedEventArgs) Handles MyBase.FormClosed

           If MessageBox.Show("Desea Salir?", "Sistema",MessageBoxButtons.YesNo,MessageBoxIcon.Warning) = DialogResult.No Then

                e.cancel = True ----------->>>>>>>> me dice que no es un miembro de System.windows.FormclosedEventArgs

            Else
                Me.Close()
            End If

        End Sub

    Nota: en esta programacion si le selecciono que si o no cierra la ventana..

             
    miércoles, 29 de marzo de 2017 21:05

Respuestas

  • Hola ANDRESF BAHAMON,

    Lo que pasa es que estás utilizando el evento equivocado, el FormClosed se ejecuta después de que el formulario se cierra, tienes que utilizar el evento FormClosing el cual se ejecuta antes de cerrar el form, ahí cancelas el cierre.

    Private Sub Ventana_FormClosing(sender As Object, e As FormClosingEventArgs) Handles MyBase.FormClosing
        If MessageBox.Show("Desea Salir?", "Sistema", MessageBoxButtons.YesNo,
                               MessageBoxIcon.Warning) = DialogResult.No Then
            e.Cancel = True
         End If
    End Sub

    No es necesario agregar un else, ya que si es SI lo cerraría normal.

    Saludos.


    JC NaupaCrispín
    Lima - Perú

    La magia no existe, la programación SI

    miércoles, 29 de marzo de 2017 21:27

Todas las respuestas

  • Hola, prueba así

    If MessageBox.Show("Desea Salir?", "Sistema",MessageBoxButtons.YesNo,MessageBoxIcon.Warning) = DialogResult.No Then Return Else Me.Close() End If End Sub

    Saludos!

    Si serví a tu consulta, no olvides votar como útil.

    miércoles, 29 de marzo de 2017 21:07
  • Nada, de las dos opciones se va a cerrar.
    miércoles, 29 de marzo de 2017 21:20
  • Hola

    Le estas consultando si desea salir, al ponerle no, que coloque return o exit sub termina el metodo, si le colocar si irá al Me.Close()


    Si serví a tu consulta, no olvides votar como útil.

    miércoles, 29 de marzo de 2017 21:23
  • Si lo usas en FormClosing no tendras problemas.

    If MessageBox.Show("Desea salir?", "Sistema...",
    MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button2) =
    Windows.Forms. DialogResult.Yes Then
     e.Cancel = False
     Me.Dispose()
     Else
     e.Cancel = True
     End If

    • Editado Javier Roque miércoles, 29 de marzo de 2017 21:27
    miércoles, 29 de marzo de 2017 21:26
  • Hola ANDRESF BAHAMON,

    Lo que pasa es que estás utilizando el evento equivocado, el FormClosed se ejecuta después de que el formulario se cierra, tienes que utilizar el evento FormClosing el cual se ejecuta antes de cerrar el form, ahí cancelas el cierre.

    Private Sub Ventana_FormClosing(sender As Object, e As FormClosingEventArgs) Handles MyBase.FormClosing
        If MessageBox.Show("Desea Salir?", "Sistema", MessageBoxButtons.YesNo,
                               MessageBoxIcon.Warning) = DialogResult.No Then
            e.Cancel = True
         End If
    End Sub

    No es necesario agregar un else, ya que si es SI lo cerraría normal.

    Saludos.


    JC NaupaCrispín
    Lima - Perú

    La magia no existe, la programación SI

    miércoles, 29 de marzo de 2017 21:27