The Mdi parent must have it's IsMdiContainer
property set to True
. You can set this property at design time in your frmMainPanel
form.
Form that was specified to be the MdiParent for this form is not an MdiContainer
Pergunta
I was working on an inventory software and suddenly came to know that I need some main form through which I should open all the other forms, so I created one named frmMainPanel and use a menu strip to link it to another I am successful in linking them but they are opening outside the main form, I use following code to link them
Linking frmSaleInvoice form using:
frmSaleInvoice childForm = new frmSaleInvoice();
cs.show()
now i realize i should make them child to the main form so i tried that using following code:
frmSaleInvoice childForm = new frmSaleInvoice();
childForm.MdiParent = this;
childForm.Show();
but it says **" Form that was specified to be the MdiParent for this form is not an MdiContainer."**
can any one help me out wher i am mistaking and how could i make a form named frmSaleInvoice to child of other form named frmMainPanel
Solução
Outras dicas
You should set the IsMdiContainer = true
for the parent form.
you don't have to set the childForm
to true, you can
try this:
childForm.MdiParent = (name of your mdiparent form).ActiveForm;
childForm.Show();
Just write IsMdiContainer = true;
in your code.
Form2 fL = new Form2();
fL.MdiParent = this;
fL.Show();
Form2
is the name of the form that you want to show.
private void tsbCadastrar_Click(object sender, EventArgs e)
{
try
{
frmCliente cliente = null;
foreach (Form frm in this.MdiChildren)
{
if (frm is frmCliente)
{
cliente = (frmCliente)frm;
break;
}
}
if (cliente == null)
{
cliente = new frmCliente();
cliente.MdiParent = this; //Remove this line in case the IsMdiParent = True
cliente.Show();
}
cliente.Focus();
}
catch (Exception ex)
{
MessageBox.Show("Não foi possivel se conectar ao formulario devido ao erro: " + ex.Message,
"Aviso",
MessageBoxButtons.OK,
MessageBoxIcon.Information);
}
}