C#在splitContainer1控件和panel控件中显示窗体
2013-09-20 11:52 糯米粥 阅读(6260) 评论(0) 编辑 收藏 举报现在有两个窗体 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;