Fechar Form filho ao abrir outro

1 resposta
csharp
Rafael_Sapede

Boa noite pessoal, não sei se eu postei no lugar certo mas não encontrei a categoria correta para o assunto sobre C#.
Peço desculpas se violei alguma regra.

Sou novo no C# e estou tentando montar um programa com partes de códigos que acho na internet.
Aonde quero chegar, criei um menustrip com algumas abas fiz um Form pai e fiz dois form filhos com o seguinte cod.:

Form2 newMDIChild = new Form2();

// Set the Parent Form of the Child window.

newMDIChild.MdiParent = this;

// Display the new form.

newMDIChild.Show();

Só que tem um problema nesse código, quando eu abro uma aba o que já estava aberto continua e assim por diante ate o infinito e alem.
Queria saber como eu posso fazer para fechar automaticamente quando clico em outra aba

Agradeço a todos

1 Resposta

R

O problema do seu código esta em como você esta chamando a janela, o objeto janela esta atribuído ha janela,
Não intendi bem sua hierarquia mas imagino que o problema seja o seguinte

Form1 = pai
-> Form2 = filho

//Quando mandar o filho abrir faça isso dentro da classe pai

this.hide();
newMDIChild.show();

Detalhe o pai só vai ficar invisível enquanto o filho vai ficar visível, não é possível você encerrar o pai pois o objeto filho pertence ao objeto pai, caso queira depois voltar a mostrar o objeto pai, você pode criar um ponteiro dentro do objeto filho que set características do objeto pai seria

função dentro do pai (){

//para isso funcionar o filho deve ser um variável global dentro do pai

newMDIChild.hide();

this.show;

}

Infelizmente não sei o nome dos comandos em C#, mas a estrutura é bem parecida com java

Criado 7 de outubro de 2018
Ultima resposta 8 de out. de 2018
Respostas 1
Participantes 2