Question

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

Was it helpful?

Solution

The Mdi parent must have it's IsMdiContainer property set to True. You can set this property at design time in your frmMainPanel form.

OTHER TIPS

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);
        }
    }
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top