MdiParent duvidas com forms

29/05/2013

Estou com uma dúvida, eu criei um Form do tipo MdiParent, eu tenho três forms que abrem dentro dessa Mdi, só que quando no form de cadastro quando eu preencho os campos e clico no botão confirmar, ate ai tudo bem, ele coloca as informações no form seguinte, porem esse form não fica dentro da Mdi quando aplico essa ação, alguém poderia me dar uma dica ?

Vinicius Biá

Respostas

29/05/2013

Joel Rodrigues

Os demais forms estão todos como filhos do principal?
Responder Citar

29/05/2013

Vinicius Biá

acho que sim, no caso usa-se ex: frm.Mdi.Parent = this;
seria isso ?
Responder Citar

29/05/2013

Joel Rodrigues

Exato. Em todos que você deseja que sejam filhos do form principal.
Responder Citar

29/05/2013

Vinicius Biá

Então esta assim:
private void btnCad_Click(object sender, EventArgs e)
{
Form frmForm1 = new frmPDE(txtUsuario.Text);
frmForm1.MdiParent = this;
frmForm1.Show();
this.Close();


Mas na hora em que clico no botão confirmar, que no caso é o ctnCad, ele me joga o Form que recebe as informações fora da Mdi
Responder Citar

29/05/2013

Joel Rodrigues

Esse código está no form principal ou em um MDI filho que já está dentro do principal e chama outro MDI filho?
Responder Citar

29/05/2013

Vinicius Biá

Em um MDI filho que chama outro MDI filho
Responder Citar

29/05/2013

Joel Rodrigues

No caso, você está definindo o segundo form como filho do primeiro. Veja que você definiu o Parent como this, apontando para o primeiro filho.
O correto aí então seria o PArent ser o form principal.
Responder Citar

29/05/2013

Vinicius Biá

É justamente essa a duvida, quando eu me referencio "this", ele me gera um erro dizendo que este form não é do tipo Container, ou seja um MdiParent, e eu gostaria de saber como faz para este form filho jogar informação dentro de outro sem que ele saia do form principal
Responder Citar

29/05/2013

Joel Rodrigues

Cara, acho que para isso você precisará ter uma referência ao form principal. Uma forma de fazer, que eu visualizo agora, é passar uma referência ao form principal para o primeiro filho e usá-la como parent para o segundo. Por exemplo:
No primeiro filho, você teria uma variável:
public formPai : Form

e ao chamá-lo, a partir do form principal, você passaria ele próprio pra essa variável:
formFilho.FormPai = this;


E no primeiro filho você utilizaria a variável FormPai como Parent do segundo filho, ao invés do this.
Responder Citar