怎样才能在一个form或panel中自由的融入别的Form

主  题:  大虾,怎样才能在一个form或panel中自由的融入别的Form
作  者:  wbcnxa (藤逸)
等  级:  ^
信 誉 值:  100
所属论坛:  .NET技术 C#
问题点数:  50
回复次数:  9
发表时间:  2003-12-02 20:37:16

你好,请问怎样才能在一个form或panel中自由的融入别的Form,就是说如何如何将别的form在运行态添加并显示在已有的form中,而不是弹出一个对话框?



回复人: eyestrong(有时爱情图有虚名) ( 五级(中级)) 信誉:99 2003-12-02 20:53:00 得分:0

使用MDI(父子窗体模式)
例如在form1中加入form2:
代码如下:

this.IsMdiContainer=true;
Form2 f2=new Form2();
f2.MdiParent=this;
f2.Show();

回复人: eyestrong(有时爱情图有虚名) ( 五级(中级)) 信誉:99 2003-12-02 20:58:00 得分:0

可以使Form2的FormBorderStyle=none,这样Form2就没有边框了另外使Form2的WindowState为Maximized则Form2为最大化。

回复人: jiezhi(風依舊) ( 三星(高级)) 信誉:100 2003-12-02 21:07:00 得分:0

建议使用frame,效率高,而且方便

回复人: jiezhi(風依舊) ( 三星(高级)) 信誉:100 2003-12-02 21:09:00 得分:0

sorry,看错了:(

回复人: qiaobaba(一路坎杀) ( 三级(初级)) 信誉:100 2003-12-03 09:38:00 得分:0

把你子窗体的

Public Class Form1
    Inherits System.Windows.Forms.Form
                                  ^^^^^

改为Panle
如果有错误提示去掉AutoSize什么的就可以了,用法和普通的Panle一样。

回复人: qiaobaba(一路坎杀) ( 三级(初级)) 信誉:100 2003-12-03 09:40:00 得分:0

上面写错了,是panel
去掉AutoScaleBaseSize就可以了

回复人: prettysammi(旻) ( 一级(初级)) 信誉:100 2003-12-03 09:43:00 得分:0

使用frame

回复人: zjlion(晴海) ( 二级(初级)) 信誉:100 2003-12-03 09:46:00 得分:0

PendingAffairForm form2= new PendingAffairForm(this);
form2.FormBorderStyle = FormBorderStyle.None;
form2.TopLevel = false;
form2.TopMost = false;
form2.Dock = DockStyle.Fill;
this.panelWorkSpace.Controls.Add(form2);
form2.Show();

这里的this代表form1

回复人: zjlion(晴海) ( 二级(初级)) 信誉:100 2003-12-03 09:47:00 得分:0

panelWorkSpace是form1上的panel.

Contributors: FHL