如何将MDI子窗体置于父窗体中的panel之上? MDI父窗体之中放置了一个panel,我想让生成的子窗体置于panel之上。请问怎么做? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 那你的子窗体好像不能设置为mdi,最好把窗体border设为none,然后在panel.Controls中进行加载。 直接放应该不行吧。为什么非得这样做呢?是不是想实现类型frame的效果? 如果设置了MDI父窗体中panel的DOCK属性 那么子窗体便会在父窗体的客户区显示,如果没有设置dock属性,那么panel便会遮盖住生成的子窗体,现在我想做的处理是让子窗体显示在最上层。请问怎么做? MDI父窗体之中放置了一个panel 把Panel改为MDIClient //WinForm嵌入panelForm2 form = new Form2();form.FormBorderStyle = FormBorderStyle.None;form.TopLevel = false;this.panel1.Controls.Add(form);form.Show(); 同意楼上代码,不过应该这两个窗体应该不是MDI的窗体,不然子穿体不可能在父窗体的PANEL里显示出来 我想做的不是嵌入,而是位于panel之上,就好比 图层一样 让子窗体显示在最上层。 to 我想做的不是嵌入,而是位于panel之上,就好比 图层一样 让子窗体显示在最上层。那你把panel加载到一个子窗体上,然后设置窗体FormBorderStyle为None,然后用panel来填充整个窗体,然后这个窗体用mdi子窗体的方式加载到mdi中。 这样处理可以达到部分效果,但还不是很完美,因为这样做的话 panel控制子窗体的事件,panel随主窗体伸缩这些问题都会要处理,就会变的很麻烦。 记得在 Delphi 中的 MDI 窗体中,可以设置非模态窗体的显示位置永远在最前,那么在C#中能做到吗?如能的话,怎么做? 不用MDI窗体的话可以直接放到panel中.MDI下没用过. 可以的FrmDetail Frm=new FrmDetail(); Frm.MdiParent=this.MdiParent;Frm.Parent=this.Panel1;Frm.Show(); 上述处理报异常:未处理的“System.ArgumentException”类型的异常出现在 system.windows.forms.dll 中。其他信息: 不能将顶级控件添加到一个控件上。 我不是想把子窗体嵌入到panel里面,我是想显示在上面。就想上面我说的 想图层一样 处于最上层。 呵呵,错了啊,这样啊FrmDetail Frm=new FrmDetail(); Frm.MdiParent=this;Frm.Parent=this.Panel1;Frm.Show(); 我你的意思还不是想实现这样的效果,点击一个功能菜单,把对应的窗体在panel上显示? 不行吗?这样把窗体在panel上显示后,还可以控制窗体啊,窗体的所有事件跟panel没关系啊,他只是在panel上显示而已 不是这样的 问题的原由是 我在主窗体中放置了一个panel,panel中的按纽点击可以生成子窗体,如果没有设置panel的dock属性,那么子窗体就好象永远在panel后面,如果设置了panel的dock属性,那么子窗体又只能在主窗体的客户区显示。而我不想这样,我想当焦点在子窗体上时,能够处于最前面,但这不是用模式窗体来实现。 Knight94(愚翁)的解答 加上一些处理可以达到效果,但是要绕点弯,我想期待有更完美的解决方案。 我明白楼主的意思,但是好像没有好方法解决,用C#做应用程序很不爽,比Delphi差多了 IT界盛传 C#为编程领域的一个耀眼的亮星,但经过这些事改观了我对C#的看法。 两个问题是一起的,回答到的有给分 关于C#自定控件的问题,请指点 winform flash控件显示FLASH越来越慢 打印圣诞树, 用循环,高手进来! VS2005之编译网站的问题...高手Come on.. 关于项目引用和文件引用的问题。 C#被委托调用的方法如何知道是哪一个类调用了它? Microsoft Visual Studio 2005 问题 用C#实现这样2个程序功能 密码 关于string的问题,不理解! 如何用正则表达式提取本地url
Form2 form = new Form2();
form.FormBorderStyle = FormBorderStyle.None;
form.TopLevel = false;
this.panel1.Controls.Add(form);
form.Show();
记得在 Delphi 中的 MDI 窗体中,可以设置非模态窗体的显示位置永远在最前,那么在C#中能做到吗?如能的话,怎么做?
Frm.MdiParent=this.MdiParent;
Frm.Parent=this.Panel1;
Frm.Show();
FrmDetail Frm=new FrmDetail();
Frm.MdiParent=this;
Frm.Parent=this.Panel1;
Frm.Show();
如果没有设置panel的dock属性,那么子窗体就好象永远在panel后面,如果设置了panel的dock属性,那么子窗体又只能在主窗体的客户区显示。而我不想这样,我想当焦点在子窗体上时,能够处于最前面,但这不是用模式窗体来实现。 Knight94(愚翁)的解答 加上一些处理可以达到效果,但是要绕点弯,我想期待有更完美的解决方案。