开发者

Show/hide, BringToFront/SendToBack a panel on Parent form when a Child Form on the MDI Parent Form closes or appears

I need to hide a panel on the Parent Form when a Child Form on an MDI Parent Form closes & show back the panel on the Parent form when the Child Form is closed.

Currently am using SendtoBack() to show the Child Form infront of the Panel which is on the Parent Form , but when i close the Child Form, then the Panel doesn't appears back, even if i use :

BringtoFront()

OR

Panel1.Visible=true


    public partial class CHILD : Form
        {
      private void CHILD_Load(object sender, Ev开发者_JAVA技巧entArgs e)
            {
                this.FormClosed += new FormClosedEventHandler(CHILD_FormClosed);
            }

     void CHILD_FormClosed(object sender, FormClosedEventArgs e)
            {
                PARENTForm P = new PARENTForm();
                P.panel1.BringToFront();
                P.panel1.Visible = true; 

            }
}




public partial class Form1 : Form
   {
   private void linkLabel1_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
            {
                CHILD P = new CHILD();
                P.Showg();
                P.MdiParent = this;
                P.BringToFront();
                panel1.SendToBack();
                panel1.Visible = false;
            }
    }

THIS ISN'T WORKING....PLEASE HELP..!

Show/hide, BringToFront/SendToBack a panel on Parent form when a Child Form on the MDI Parent Form closes or appears


You creating new parent form in child form. You need to pass parent form object to child form and then use it to show/hide panel and set panel Modifiers property to public. For example...

Parent form:

public partial class ParentForm : Form
{
    public ParentForm()
    {
        InitializeComponent();
    }

    private void button1_Click(object sender, EventArgs e)
    {
        panel1.Visible = false;
        ChildForm childForm = new ChildForm();
        childForm.MdiParent = this;
        childForm.Show();
    }
}

Child form:

public partial class ChildForm : Form
{
    public ChildForm()
    {
        InitializeComponent();
    }

    private void Child_FormClosed(object sender, FormClosedEventArgs e)
    {
        ParentForm parentForm = (ParentForm)this.MdiParent;
        parentForm.panel1.Visible = true;
    }
}


Use this Code in Parent Form

    private void MainMenu_ChildForm_Click(object sender, EventArgs e)
    {
            ChildForm frm = new ChildForm();
            frm.MdiParent = this;
            ShowHideMainPanel(frm);
            frm.Show();
    }

void ShowHideMainPanel(Form frm)
        {
            frm.FormClosed += new FormClosedEventHandler(Form_Closed);
            panel1.Visible = false;
        }

        void Form_Closed(object sender, FormClosedEventArgs e)
        {
            panel1.Visible = true;
        }

by assigning close event for child to show panel after its closing

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜