FECHAR FORM PRINCIPAL SEM ENCERRAR APLICACAO
Boa noite pessoal,
Estou começando um projeto em C#, e me surgiu a seguinte dúvida.
Creio que seja algo bobo, mas não estou conseguindo fazer do modo que preciso.
Bom, vamos lá:
Tenho uma aplicação com o formulário principal frmLogin e um formulário MDI que será aberto caso o usuário seja validado.
O que eu preciso é, quando o usuário for validado, após abrir o MDI, fechar o formulário de login.
Tentei da seguinte forma, mas a aplicação está sendo encerrada, pois o frmLogin está como principal no Main() do Program.cs:
Encontrei como alternativa, dar apenas um Hide no formulário de login, como segue:
Porém o mesmo vai ficar na memória certo?
No MDI principal o usuário tem uma opção no menu para trocar usuário (logoff).
O que eu queria é fechar o MDI e mostrar novamente o formulário de login que está [Ô]escondido[Ô], mas não consegui fazer isso.
Toda a vez que executo o código abaixo, creio que esteja criando uma nova instância do formulário, ao invés de apenas mostrar o formulário já em memória:
Alguém tem alguma dica?
Obrigado.
Estou começando um projeto em C#, e me surgiu a seguinte dúvida.
Creio que seja algo bobo, mas não estou conseguindo fazer do modo que preciso.
Bom, vamos lá:
Tenho uma aplicação com o formulário principal frmLogin e um formulário MDI que será aberto caso o usuário seja validado.
O que eu preciso é, quando o usuário for validado, após abrir o MDI, fechar o formulário de login.
Tentei da seguinte forma, mas a aplicação está sendo encerrada, pois o frmLogin está como principal no Main() do Program.cs:
mdiPrincipal form = new mdiPrincipal(this);
form.Show();
this.Close();
Encontrei como alternativa, dar apenas um Hide no formulário de login, como segue:
mdiPrincipal form = new mdiPrincipal(this);
form.Show();
this.Hide();
Porém o mesmo vai ficar na memória certo?
No MDI principal o usuário tem uma opção no menu para trocar usuário (logoff).
O que eu queria é fechar o MDI e mostrar novamente o formulário de login que está [Ô]escondido[Ô], mas não consegui fazer isso.
Toda a vez que executo o código abaixo, creio que esteja criando uma nova instância do formulário, ao invés de apenas mostrar o formulário já em memória:
this.Close();
frmLogin form = new frmLogin();
form.Show();
Alguém tem alguma dica?
Obrigado.
Vá nas propriedades do projeto e na opção Shutdown mode selecione When last form closes.
Como ele vem por padrão When star tup form closes, encerra a aplicação quando o ser form de login é fechado.
Como ele vem por padrão When star tup form closes, encerra a aplicação quando o ser form de login é fechado.
Boa noite RICART e OCELOT,
Primeiramente agradeço aos dois pelas respostas e peço desculpas por demorar tanto para verificá-las (só altero o projeto de final de semana basicamente).
RICART, conforme foi explicado, essa opção não existe mesmo no C#, inclusive já havia ouvido falar e tal, mas nesse caso não se aplicaria.
OCELOT, entendi sua lógica, alterei o programa e testei. Funcionou tudo perfeitamente! Muito obrigado
Primeiramente agradeço aos dois pelas respostas e peço desculpas por demorar tanto para verificá-las (só altero o projeto de final de semana basicamente).
RICART, conforme foi explicado, essa opção não existe mesmo no C#, inclusive já havia ouvido falar e tal, mas nesse caso não se aplicaria.
OCELOT, entendi sua lógica, alterei o programa e testei. Funcionou tudo perfeitamente! Muito obrigado
Tópico encerrado , respostas não são mais permitidas