社区
C#
帖子详情
C# MDI 子窗体被父窗体控件挡住
mbridge
2009-03-08 04:08:02
父窗体中有Panel控件(panel上放置别的有用的控件),打开子窗体后,子窗体却会被这个Panel挡住.请问有什么解决方法吗?
我试了几种方法都不行,这些控件就像是贴在显示器上的纸片一样,不管子窗体怎么top,都被他挡在后面...
注:子窗体的TopMost 已经设为true,Panel置于底层也不行,另外定义一个Panel用来作为子窗体的容器也不行,因为子窗体还需要移动.
请高手不吝赐教吧~!
...全文
1075
14
打赏
收藏
C# MDI 子窗体被父窗体控件挡住
父窗体中有Panel控件(panel上放置别的有用的控件),打开子窗体后,子窗体却会被这个Panel挡住.请问有什么解决方法吗? 我试了几种方法都不行,这些控件就像是贴在显示器上的纸片一样,不管子窗体怎么top,都被他挡在后面... 注:子窗体的TopMost 已经设为true,Panel置于底层也不行,另外定义一个Panel用来作为子窗体的容器也不行,因为子窗体还需要移动. 请高手不吝赐教吧~!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
14 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
天或
2012-11-01
打赏
举报
回复
2
using System.Runtime.InteropServices;
[DllImport("user32")]
public static extern int SetParent(int hWndChild, int hWndNewParent);
Form2 f2 = new Form2();
f2.MdiParent = this;
f2.Show();
SetParent((int)f2.Handle, (int)this.Handle);
方法有效。mark
感谢 liujianghongcc
Terence_c
2012-09-06
打赏
举报
回复
不知道LZ解决没有,分享一下,我也正碰到这种问题,帮顶
你的名字2018
2012-08-30
打赏
举报
回复
友情帮顶,这个问题解决了没有啊?
我也遇到了,试了很多种方法
有的基本能达到效果,但是会失去MDI特性
比较杯具啊
烙饼
2011-08-04
打赏
举报
回复
using System.Runtime.InteropServices;
[DllImport("user32")]
public static extern int SetParent(int hWndChild, int hWndNewParent);
Form2 f2 = new Form2();
f2.MdiParent = this;
f2.Show();
SetParent((int)f2.Handle, (int)this.Handle);
hzairwolf
2010-04-16
打赏
举报
回复
刚提问了这个问题 发现这里还没有解决。。。
黄土大风
2009-11-28
打赏
举报
回复
[Quote=引用 8 楼 xu56180825 的回复:]
有办法解决。。你可以创建一个没有标题的FORM,其他不用我多说了吧:)
[/Quote]
那样也不行,创建的这个FORM会挡住其它的子窗体,我的意思是说,创建的这个FORM 需要总是在其它MDI子窗体的最后面显示,这点实现不了啊,
xu56180825
2009-08-24
打赏
举报
回复
有办法解决。。你可以创建一个没有标题的FORM,其他不用我多说了吧:)
mbridge
2009-03-10
打赏
举报
回复
见者有分,谢谢大家.
mbridge
2009-03-08
打赏
举报
回复
谢5楼!
不过,这好像是delphi的吧.
ClientPanel.Parent:=nil;
ClientPanel.ParentWindow:=Self.ClientHandle;
这两句话在c#中好像没有办法实现. panel没有ParentWindow这个属性.
如果只用第一句,改为才C# 中的this.panel1 .parent = this; panel还是挡住子窗体.
wuyq11
2009-03-08
打赏
举报
回复
http://www.cnblogs.com/delphi2007/archive/2008/11/18/1335924.html
mbridge
2009-03-08
打赏
举报
回复
回2楼:
是winForm的.
mbridge
2009-03-08
打赏
举报
回复
父窗体不要放控件?请问什么意思,那么我的控件怎么办?另外定义一个from来存放吗?
"子窗体提供Panel的Parent "这句不太理解,请再详细解释一下可以吗?
zhangweisjz
2009-03-08
打赏
举报
回复
是Widows Form 还是 网页啊?
cnming
2009-03-08
打赏
举报
回复
父窗体不要放控件,或者给你的子窗体提供Panel的Parent
【爱码农】
C#
制作
MDI
文本编辑器
本教程完整讲解了使用
C#
编程语言开发《
MDI
文本编辑器》(
MDI
记事本)程序的完整过程。本视频教程非PPT录播方式,而是现场界面搭建、代码输入,充分模仿了一个初学者的学习过程。在代码编程过程中的常见错误都直接以实例方式进行调试解决。整个项目由浅入深、层层深入,最终一气呵成!整个教程分成三个块面:①单
窗体
的记事本程序设计②查找/替换
窗体
程序设计③
MDI
记事本程序
窗体
设计
C#
Winform
MDI
窗体
,父
窗体
控件
覆盖
子
窗体
的解决办法
问题:
MDI
窗体
中,父
窗体
控件
会覆盖
子
窗体
,网上很多解决方案表面上解决了问题,但失去了
MDI
窗体
的基本特性,并不实用。比较赞成使用
子
窗体
“代替”父
窗体
控件
的方案。思路:不将
控件
放置在父
窗体
上,而是放在一个普通的
子
窗体
上面,但其基本表现与将
控件
放在父
窗体
中一致。 这是表现指: 大小随着主
窗体
变化,覆盖整个客户区 不能被关闭、最小化等,一直处于填充整个客户区的状态 实现:
子
窗体
代码中禁用最大化、最小化
MDI
子
窗体
如何显示在picture
控件
的前面
在敲机房收费系统的时候遇到了一点小麻烦,就是在
MDI
主
窗体
上添加容器
控件
picture后,导致
MDI
子
窗体
无法显示。其实不是无法显示,只是被picture
控件
挡住
了,不明其所以然。 通过查资料终于明白了其中的原因:在
MDI
窗体
中,
子
窗体
实际上位于
MDI
Client里,即
子
窗体
的父
窗体
就是
MDI
Client,而防止在
MDI
中的picture
控件
和
MDI
Client是同一级别的,由于层次结构
C#
WinForm
子
窗体
显示(
被父
窗体
控件
挡住
解决)
父
窗体
属性is
Mdi
Container=true(右图visual studio直接改),并在
子
窗体
打开事件中如下所写,昨天还正常,今天打开
子
窗体
发现,
子
窗体
没弹出来,最后发现被挡在了父
窗体
控件
下面。 try { Form1 frm = new Form1(); frm.Md...
C#
110,555
社区成员
642,563
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章