none
Evento FormClosing RRS feed

  • Pergunta

  • Executando o evento FormClosing, caso a resposta seja "SIM", a pergunta está sendo feita novamente, e respondendo novamente "SIM" é que o aplicativo é fechado.

    Como corrigir a duplicação da mensagem (MessageBox)?

        Private Sub frm_Usuario_AlteracaoDeSenha_FormClosing(sender As Object, e As FormClosingEventArgs) Handles MyBase.FormClosing
            If gID_usuario > 0 Then
                If senhaAtual.Length < 6 Then
                    mens = "A senha não foi alterada." & vbNewLine & "Deseja sair mesmo assim?"
                    If MessageBox.Show(mens, "Atenção", MessageBoxButtons.YesNo, MessageBoxIcon.Question) = DialogResult.No Then
                        e.Cancel = True
                    Else
                        Application.Exit()
                    End If
                End If
            End If
        End Sub
    


    Sergio Ivanenko

    terça-feira, 21 de junho de 2016 13:40

Respostas

  • Eu creio quer devido ao fato do seu evento estar ligado ao MyBase.FormClosing ele esta disparando para todas as janelas. Sua aplicaçao é MDI?

    O que eu creio que ocorre é que o evento esta sendo disparado para outro formulario quando voce executa o  Application.Exit()

    Para saber se é isso mesmo altere seu codigo deste jeito:

     Private Sub frm_Usuario_AlteracaoDeSenha_FormClosing(sender As Object, e As FormClosingEventArgs) Handles MyBase.FormClosing
    MessageBox.Show(sender.Name) 'exibe o nome do formulario que esta disparando o evento
            If gID_usuario > 0 Then
                If senhaAtual.Length < 6 Then
                    mens = "A senha não foi alterada." & vbNewLine & "Deseja sair mesmo assim?"
                    If MessageBox.Show(mens, "Atenção", MessageBoxButtons.YesNo, MessageBoxIcon.Question) = DialogResult.No Then
                        e.Cancel = True
                    Else
                        Application.Exit()
                    End If
                End If
            End If
        End Sub

    Se o resultado da messagebox for o mesmo, entao sim, o evento esta sendo disparado duas vezes... caso seja diferente entao verifique a logica do seu programa.

    Att



    William John Adam Trindade
    Analyste-programmeur
    ----------------------------------------------------------

    • Marcado como Resposta Thales F Quintas terça-feira, 21 de junho de 2016 16:27
    terça-feira, 21 de junho de 2016 14:00
    Moderador