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
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