現在有兩個窗體 Form1 和Form2
Form1中有控件splitContainer1 和panel 。控件。我們希望Form2在splitContainer1或者panel控件中顯示
1:首先看在splitContainer1中顯示。splitContainer控件本身就分為panel1和panel2兩部分。我們可以上下布局和左右布局。
我這里是上下布局,我把Form2在splitContainer1中的panel1中顯示
先把Form1為MDI容器 即屬性 IsMdiContainer=true
我把代碼寫在Form1的load事件中。讓窗體加載就顯示
private void Form1_Load(object sender, EventArgs e) { //splitContainer1控件 Form2 u = new Form2(); //u.Top = -25; //u.Dock = DockStyle.Fill; //充滿父容器 //u.FormBorderStyle = FormBorderStyle.None; //不顯示邊框 //this.splitContainer1.Panel1.Controls.Clear(); u.MdiParent = this; u.Parent = this.splitContainer1.Panel1; u.Show(); }
2:在panel中顯示窗體 。只需改少量代碼 《就不上圖了》
private void Form1_Load(object sender, EventArgs e) { //splitContainer1.Panel1.Container.Add(""); //Form2 d = new Form2(); //d.MdiParent = this; //d.Show(); //splitContainer1控件 Form2 u = new Form2(); u.TopLevel = false; //u.Top = -25; //u.Dock = DockStyle.Fill; //充滿父容器 //u.FormBorderStyle = FormBorderStyle.None; //不顯示邊框 //this.splitContainer1.Panel1.Controls.Clear(); //u.MdiParent = this; //u.Parent = this.splitContainer1.Panel1; //u.Show(); Form2 x = new Form2(); x.TopLevel = false; //既然是子窗體就不能是頂級窗體 this.panel1.Controls.Add(x); x.Show(); }
窗體是顯示出來了。如果你覺得顯示了 最大化。最小化 刪除按鈕不喜歡。想讓別人家看上去完全是一個窗體的效果。
我們可以通過上面的代碼u.Top = -25 距離頂部的距離(控件panel1 或者splitContainer1.panel1頂部的距離)。是負數則向上移。那么splitContainer1或者
panel1控件就會遮住最大化。最小化 刪除按鈕 。不過這個值的大小。需要自己嘗試,不一定是 -25。或者。你可以索性設置Form2的屬性設置: FormBorderStyle.None;