sábado, 13 de outubro de 2012

Abrir formulário dentro de outro formulário C#

Presciso fazer com que um formulário principal carregue todos os outros forms dentro dele mesmo (excessão as telas de erros e tals) sem que repita um formulário x.
Ex:
Se eu já tiver um form2 aberto dentro do form principal, e pedir pra que abra outro form2, não aceitar, mas que permita abrir um "form3".
Consegui uma parte das seguintes maneiras:

Maneira 1 (com um panel dentro do formulário principal):

this
</FONT></FONT></FONT>;FormSecundario novoForm = newFormSecundario();
novoForm.MdiParent = 
this;
panelMostrarFormSec.Controls.Add(novoForm);
novoForm.Show();

Maneira 2(usando o form principal como MDI):
</SPAN>
frmSec form2 = new frmSec();
prt.MdiParent = this;
form2.show();

O problema é o seguinte:
Usando o container(Panel) - sempre que abro um form a ser carregado dentro do panel, ele vai pro final dos forms, ou seja, se já tem um form aberto dentro do panel, o segundo form aberto ao invéz de vir pro topo do panel, vai pro final dele, ficando escondido .

Usando o form principal como MDI - O primeiro form que for aberto dentro do form principal abre normalmente, já o segundo vai abrindo de forma cascata. Gostaria que todos eles abrissem ancorado no canto superior esquerdo.

Problema com ambos (form MDI ou Panel):
Se já existir algum formSec dentro do panel ou form principal e eu pedir pra que abra este mesmo formSec novamente, ele abre. Gostaria de saber se tem alguma solução pra quando já existe um formSec instanciado dentro desse panel, não abra outro, a não ser que o primeiro seja fechado.

Agradeço muito pela atenção e paciencia.
Aguardo respostas.

Nenhum comentário:

Postar um comentário