Array
(
)

MdiParent duvidas com forms

Vinicius Biá
   - 29 mai 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 ?

Joel Rodrigues
   - 29 mai 2013

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

Vinicius Biá
   - 29 mai 2013

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

Joel Rodrigues
   - 29 mai 2013

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

Vinicius Biá
   - 29 mai 2013

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

Joel Rodrigues
   - 29 mai 2013

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

Vinicius Biá
   - 29 mai 2013

Em um MDI filho que chama outro MDI filho

Joel Rodrigues
   - 29 mai 2013

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.

Vinicius Biá
   - 29 mai 2013

É 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

Joel Rodrigues
   - 29 mai 2013

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:
#Código

public formPai : Form

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


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