简体   繁体   English

当 MDI 父窗体上的子窗体关闭或出现时,显示/隐藏、BringToFront/SendToBack 父窗体上的面板

[英]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.当 MDI 父窗体上的子窗体关闭时,我需要隐藏父窗体上的面板,并在子窗体关闭时显示父窗体上的面板。

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 :目前正在使用 SendtoBack() 在父表单上的面板前面显示子表单,但是当我关闭子表单时,即使我使用:

BringtoFront()

OR或者

Panel1.Visible=true


    public partial class CHILD : Form
        {
      private void CHILD_Load(object sender, EventArgs 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..!这不起作用......请帮助......!

在此处输入图片说明

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通过为孩子分配关闭事件以在关闭后显示面板

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM