2017-06-25 17 views
0

私はUIデザインの部分で立ち往生しているVisual Studio 2012のWindowsアプリケーションのフォームに取り組んでいます。実際には、すべてのコントロールオブジェクト(パネル、テーブルレイアウトパネル)の前に子フォームを開こうとしています。ここで This the parent formmdiの親のオブジェクトのinfrontのmdiを持って来る

When I open a child form all the objects of parent form go back

フォームは、私はあなたが上のコントロールを配置することはできませんあまりにも

private void MainPage_MdiChildActivate(object sender, EventArgs e) 
    { 
     if (ActiveMdiChild != null) 
     { 
      panel1.SendToBack(); 
      picHomepage.SendToBack();    
     } 
     else 
     { 
      panel1.BringToFront(); 
      picHomepage.BringToFront(); 
     } 
    } 
+1

なぜこれをもっと複雑にしていますか? 2つの別々のフォームを使用して、 "MDI"のアイデアを削除します。 「MDI」アプローチを使用することは不要であり、達成しようとしていることが複雑になります。 – JohnG

答えて

0

このコードを試して示していなかったので、私のMDI親フォーム

frmControlAccount x; 
    private void controlToolStripMenuItem_Click(object sender, EventArgs e) 
    { 
     if (x == null || x.IsDisposed)//to avoid multiple opening of forms 
     { 
      x = new frmControlAccount(); 
      x.MdiParent = this; 
      x.Show(); 
     } 
     else 
     { 
      x.Focus(); 
      x.BringToFront(); 
     } 
    } 

内のコードですMDI Parentフォームを使用すると、MDI Parentのクライアント領域が小さくなり、MDI Childフォームがwi MDI Parentのクライアントエリアにのみ表示されます。例えば

、あなたのMDI親(何も)にパネルを入れて、ドッキング、それはあなたがあなたのMDI子フォームが表示されますことがわかりますが、あなたは、このパネルの上にそれらを移動することはできません200
のとで左。 これがMDIのしくみです。

イメージをMDI Parentに表示する場合は、ペイントイベントで自分でペイントしてイメージを表示できます。