2011-05-18 48 views
0

當MDI父窗體上的子窗體關閉時,需要隱藏父窗體上的面板& show back兒童窗體關閉時,父窗體上的面板。當MDI父窗體上的子窗體關閉或出現時,顯示/隱藏,BringToFront/SendToBack父窗體上的面板

目前正在使用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; 
      } 
    } 

這是不工作....請幫助..!

enter image description here

+0

如何打開/打電話給你的孩子的形式? child.ShowDialog()? – ibram 2011-05-18 06:19:47

+0

@ibram:沒有,我使用CHILD.Show() – sqlchild 2011-05-18 06:23:10

+0

如果你使用的ShowDialog(),而不是秀()你父窗體就會知道,如果你的孩子被關閉,你可以做你的工作小組在父形式。 – ibram 2011-05-18 06:28:17

回答

3

您在創建子窗體的新父窗體。您需要將父窗體對象傳遞給子窗體,然後使用它來顯示/隱藏面板並將面板Modifiers屬性設置爲public。 例如...

父窗體:

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(); 
    } 
} 

子窗體:

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; 
    } 
} 
+0

@Reniuz:好的,先生,有啥理由,當我們創建一個新的父窗體爲子窗體,那麼面板不顯示?構造函數被調用並且InitializeComponent()方法被執行,那麼面板爲什麼不出現? – sqlchild 2011-05-18 06:34:01

+0

它仍然不能工作先生 – sqlchild 2011-05-18 06:39:41

+1

那麼你不需要另一個父窗體,所以你不需要創建一個新窗體。你只需要使用父窗體的一個實例。你可以發佈你的所有代碼嗎? – Reniuz 2011-05-18 06:49:24