社区
C#
帖子详情
C# MDI 子窗体被父窗体控件挡住
mbridge
2009-03-08 04:08:02
父窗体中有Panel控件(panel上放置别的有用的控件),打开子窗体后,子窗体却会被这个Panel挡住.请问有什么解决方法吗?
我试了几种方法都不行,这些控件就像是贴在显示器上的纸片一样,不管子窗体怎么top,都被他挡在后面...
注:子窗体的TopMost 已经设为true,Panel置于底层也不行,另外定义一个Panel用来作为子窗体的容器也不行,因为子窗体还需要移动.
请高手不吝赐教吧~!
...全文
1081
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#
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...
在
MDI
窗体
调用
子
窗体
时怎样使不被
MDI
窗体
上的图片
挡住
最近大家都在忙着敲机房收费系统,我也一样。前几天发现了一个问题,在点击主
窗体
上的按钮调用
子
窗体
时,
子
窗体
不显示。开始时以为是我把
子
窗体
的名字敲错了导致无法调用,后来在仔细核对下排除了这种可能。那么为什么和敲学生时一样的步骤现在却出现了这个问题呢?通过在网上查和问同学发现很多同学都遇到了这个问题,也有同学已经解决了。这里就在来说说如何解决,权当强调了吧。 首先出现这个问题是因为我们的
MDI
Winform中
MDI
窗体
设计和窗口的放大缩小关闭按钮的显示与隐藏
一、
MDI
窗体
设计
MDI
窗体
即多文档界面。用于同时显示多个文档,每个文档显示在各自的窗口中。 1、设置
MDI
窗体
在
MDI
窗体
中,起到容器作用的窗口被称为“父
窗体
”,放到父
窗体
中的其他
窗体
被称为“
子
窗体
”,也成为“
MDI
子
窗体
”。当
MDI
应用程序启动时,首先会显示父
窗体
。每个应用程序只能有一个父
窗体
,其他
子
窗体
不能移除父
窗体
的框架区域。 父窗口设置: 设置
子
窗体
: 通过设置某个...
C#
110,584
社区成员
642,560
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章