c# winform 中能否实现在一个窗体中嵌入另一个窗体? c# winform 中能否实现在一个窗体中嵌入另一个窗体?谢谢 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 是同一工程下一的窗体?如果是那么通过MDI子窗体可以实现, google 一下,到处都有如果不是同一工程中的,那么就需要windowsAPI了,到codeproject找WindowTabifier, 可以的。以前有人有这样的问题,当时记得好像是通过父窗体的Controls属性来加的。Form f1=new Form();Form f2=new Form();f1.Controls.Add(f2);大概代码是这样,你自己试试。 http://www.codeproject.com/KB/cs/mdiformstutorial.aspx 可以.使用panel即可实现这种效果. 上面其实应该使用panel来实现,通过设置parentxxx即可以. 建议LZ将要嵌入的窗体做成userControl,在父窗体上拖入一个panel(命名为pnlMain),//在父窗体上加载一个界面userControl1 ucObj = new userControl1();pnlMain.Controls.Add(ucObj);ucObj.Dock = DockStyle.Fill;ucObj.BringToFront();ucObj.Show(); panel p = new xxx();p.contrals.add(你的窗体) Form F1 = new Form(); Form F2 = new Form(); F2.TopLevel = false; F2.Parent = F1; F2.Show(); F1.Show(); 在需要嵌入窗体的界面加一个panel然后panel.Controls.add(你要嵌入的界面)就OK了 我个人认为,panel 可以实现嵌入一个窗体的功能,我们一直也是这样的用的MDI 的方法没用过 csdn上有这样的文章首先在C#里添加一个窗体,命名为MdiMain,将其IsMdiContainer设定成true,这样MDI主窗体就建立了。然后再添加新窗体,命名为MdiChild。现在运行程序,会发现只运行了MdiMain这个主窗体。呵呵因为我们没有写任何代码,第二个窗体当然不能出现了。现在来添加这个代码。在MdiMain窗体上添加一个Menu,然后随便写个子菜单。双击子菜单,会出现它的Click事件,在这个事件内写如下代码:MdiChild frmMdiChild=new MdiChild();frmMdiChild.MdiParent=this;frmMdiChild.Show();这样在单击菜单项的时候就能显示MdiChild这个窗体了。但是这样会出现一个问题,就是说如果我按两次那个菜单项就会出现两个MdiChild窗体,呵呵,这是因为在C#中窗体就是一个Class,用刚才的代码就新建了一个MdiChild的实例。所以你按几次菜单项就会出现几个窗体了。控制的方法之一就是写一个变量,来存放是否打开了这个窗体,如果打开了就不继续执行了。这个小代码还是很简单的。如果想通过程序关闭MdiChild窗体,只需在MdiChild里添加一个Button,在Button的Click事件里写上Close();就可以了。 Form form1=new Form();Form form2=new Form{ToLevel=false};from1.Controls.Add(form1);这样既可以啦! Form form1=new Form();Form form2=new Form{TopLevel=false};from1.Controls.Add(form1);这样既可以啦,上面少了一个p,呵呵! 数据库语句影响 关于方法存根问题 海康威视播放本地文件抓的图片乱码,请帮忙看看时哪里不对 帮帮忙,为什么打不开啊 新做的网站 荆州信息园 ,大家快过来砸一砸啊!给一点改进的意见啊。万分感谢了。 求助,好心帮忙写段随机数的代码 C#調用C++寫的DLL問題,急 高分求助,有关对Access引用对象的操作 一条简单的SQL语句 求大虾们帮忙解决 关于替换字符的正则表达式?(谢谢,在线等) 熟悉lookupedit的请进....,怎么给它赋值? C# 中 使用TreeView选中checkbox项 ,怎么判断node项的checkbox被选中,怎么选中checkbox
如果是那么通过MDI子窗体可以实现, google 一下,到处都有
如果不是同一工程中的,那么就需要windowsAPI了,到codeproject找WindowTabifier,
以前有人有这样的问题,当时记得好像是通过父窗体的Controls属性来加的。
Form f1=new Form();
Form f2=new Form();
f1.Controls.Add(f2);
大概代码是这样,你自己试试。
在父窗体上拖入一个panel(命名为pnlMain),//在父窗体上加载一个界面
userControl1 ucObj = new userControl1();
pnlMain.Controls.Add(ucObj);
ucObj.Dock = DockStyle.Fill;
ucObj.BringToFront();
ucObj.Show();
p.contrals.add(你的窗体)
Form F2 = new Form();
F2.TopLevel = false;
F2.Parent = F1;
F2.Show();
F1.Show();
panel.Controls.add(你要嵌入的界面)
就OK了
MDI 的方法没用过 csdn上有这样的文章首先在C#里添加一个窗体,命名为MdiMain,将其IsMdiContainer设定成true,这样MDI主窗体就建立了。然后再添加新窗体,命名为MdiChild。现在运行程序,会发现只运行了MdiMain这个主窗体。呵呵因为我们没有写任何代码,第二个窗体当然不能出现了。现在来添加这个代码。在MdiMain窗体上添加一个Menu,然后随便写个子菜单。双击子菜单,会出现它的Click事件,在这个事件内写如下代码:MdiChild frmMdiChild=new MdiChild();
frmMdiChild.MdiParent=this;
frmMdiChild.Show();这样在单击菜单项的时候就能显示MdiChild这个窗体了。但是这样会出现一个问题,就是说如果我按两次那个菜单项就会出现两个MdiChild窗体,呵呵,这是因为在C#中窗体就是一个Class,用刚才的代码就新建了一个MdiChild的实例。所以你按几次菜单项就会出现几个窗体了。控制的方法之一就是写一个变量,来存放是否打开了这个窗体,如果打开了就不继续执行了。这个小代码还是很简单的。如果想通过程序关闭MdiChild窗体,只需在MdiChild里添加一个Button,在Button的Click事件里写上Close();就可以了。
Form form2=new Form{ToLevel=false};
from1.Controls.Add(form1);
这样既可以啦!
Form form2=new Form{TopLevel=false};
from1.Controls.Add(form1);
这样既可以啦,上面少了一个p,呵呵!