none
Qual o problema? RRS feed

  • Pergunta

  • Boa Tarde!

    Estou com um problema, estes são os códigos referentes:

                Form3 M = new Form3();
                M.ShowDialog();
                this.Close();
    O problema é, que ele abre um novo form, mas não fecha o anterior e isso gera vários forms. O que a de errado com o código?

    quinta-feira, 6 de novembro de 2014 16:44

Respostas

  • Boa Tarde!

         Na verdade o primeiro problema é uma questão de conceito, quando você executa um comando "ShowDialog" voce esta abrindo um formulario em modo Modal... Isso é... você abre um formulario, executa um processo nesse formulario, e somente após o encerramento do mesmo é que você vai continuar o processo do formulario pai...

        No se caso, o comando "this.Close()" somente será executado quando voce terminar o processo "M.ShowDialog()" encerrando o formulario M.

        Para abrir um novo formulario Modeless, isso é... independete do formulario pai... use somente o comando "M.Show()", mas lembrando que no momento que o formulario aberto na inicialização do programa (no comando "Application.Run(new Form1());" do Program.cs) for encerrado.... a aplicação inteira sera encerrada junto.


    Microsoft Community Contributor

    • Sugerido como Resposta Daniel Brito br quinta-feira, 6 de novembro de 2014 18:35
    • Marcado como Resposta TrojanG sexta-feira, 7 de novembro de 2014 02:31
    • Não Marcado como Resposta TrojanG sexta-feira, 7 de novembro de 2014 03:36
    • Marcado como Resposta Ricardo Barbosa CortesModerator sexta-feira, 7 de novembro de 2014 17:31
    quinta-feira, 6 de novembro de 2014 18:28
    Moderador

Todas as Respostas

  • Olá TrojanG,

     mas qual seria seu objetivo, sempre fechar o form e abrir outro, ou maximizar o form se ja estiver aberto ?

    quinta-feira, 6 de novembro de 2014 16:48
  • Tenta colocar o nome do form que deseja fechar
    quinta-feira, 6 de novembro de 2014 16:53
  • Abrir um form e fechar o form atual
    quinta-feira, 6 de novembro de 2014 18:24
  • Form2.Close();  ? Não consigo desse jeito.
    quinta-feira, 6 de novembro de 2014 18:24
  • Boa Tarde!

         Na verdade o primeiro problema é uma questão de conceito, quando você executa um comando "ShowDialog" voce esta abrindo um formulario em modo Modal... Isso é... você abre um formulario, executa um processo nesse formulario, e somente após o encerramento do mesmo é que você vai continuar o processo do formulario pai...

        No se caso, o comando "this.Close()" somente será executado quando voce terminar o processo "M.ShowDialog()" encerrando o formulario M.

        Para abrir um novo formulario Modeless, isso é... independete do formulario pai... use somente o comando "M.Show()", mas lembrando que no momento que o formulario aberto na inicialização do programa (no comando "Application.Run(new Form1());" do Program.cs) for encerrado.... a aplicação inteira sera encerrada junto.


    Microsoft Community Contributor

    • Sugerido como Resposta Daniel Brito br quinta-feira, 6 de novembro de 2014 18:35
    • Marcado como Resposta TrojanG sexta-feira, 7 de novembro de 2014 02:31
    • Não Marcado como Resposta TrojanG sexta-feira, 7 de novembro de 2014 03:36
    • Marcado como Resposta Ricardo Barbosa CortesModerator sexta-feira, 7 de novembro de 2014 17:31
    quinta-feira, 6 de novembro de 2014 18:28
    Moderador
  • Ele ainda continua não fechando a form atual
    sexta-feira, 7 de novembro de 2014 03:37