C# 子窗口显示问题

rubperfect 2010-01-16 10:57:54
我在MDI的主窗口中添加了treeview,textbox,picturebox等控件
我在一个click事件中show()了子窗口
但是发现子窗口是被覆盖在treeview,picturebox这些控件的下面的
请问如何让这个子窗口现在到这些控件的上面来呢??

都找不到相关的解答。。
...全文
2955 61 打赏 收藏 转发到动态 举报
写回复
用AI写文章
61 条回复
切换为时间正序
请发表友善的回复…
发表回复
天或 2012-10-28
  • 打赏
  • 举报
回复
看完这个贴,就知道那种被遮住了,是没办法弄的,就得出一个这样的结果,或者是我还没有发现
你的名字2018 2012-08-30
  • 打赏
  • 举报
回复
友情帮顶
这个问题解决了没有啊?
我也遇到了,试了很多种方法
有的基本能达到效果,但是会失去MDI特性
比较杯具啊

46楼方法 和 52 楼、53楼方法,简单测试了下,有会下面几个问题:
1.最小化子窗体后,该子窗体不能还原;
2.子窗体间不能切换;
3.会失去 MDI 窗体特性,例如:MdiChildActivate 事件失效。
你的名字2018 2012-08-30
  • 打赏
  • 举报
回复
友情帮顶
这个问题解决了没有啊?
我也遇到了,试了很多种方法
有的基本能达到效果,但是会失去MDI特性
比较杯具啊

46楼方法 和 52 楼、53楼方法,简单测试了下,有会下面几个问题:
1.最小化子窗体后,该子窗体不能还原;
2.子窗体间不能切换;
3.会失去 MDI 窗体特性,例如:MdiChildActivate 事件失效。
wlgcao 2012-05-21
  • 打赏
  • 举报
回复
53楼太强了,一个上午的问题终于解决了
happy04110411 2012-05-18
  • 打赏
  • 举报
回复
53楼的问题是解决了, 但是还有个问题, 就是该方法打开的子窗体看上去不是被激活的状体,而且最小化的时候也不对,正常的MDI子窗体是被激活状体,最小化的时候会放到父窗体的左下角。

这个问题能给解决一下吗????


jfdsies 2011-05-07
  • 打赏
  • 举报
回复
虽然暂时用不上~但难保以后会用不上~
于是学习学习的说~谢谢分享。
dcnbchd 2011-02-10
  • 打赏
  • 举报
回复
53楼很强!
laomengzi 2010-08-14
  • 打赏
  • 举报
回复
我也遇到这个问题!用了53楼的方法解决了
lusian_download004 2010-08-03
  • 打赏
  • 举报
回复
楼主,以下是我用的办法:
private void button1_Click_1(object sender, EventArgs e)
{

Form myChildForm = new Form();
myChildForm.Width = 400;
myChildForm.Height = 300;
myChildForm.TopLevel = false;
this.Controls.Add(myChildForm);
myChildForm.Visible = true;
myChildForm.BringToFront();
}
我就是把“子窗口”的TopLevel设置为false,让它不再是顶级窗口;
然后把“子窗口”加到“父窗口”当中,也就是这句:this.Controls.Add(myChildForm);
接下来把“子窗口”调为“可见”,然后再调用“子窗口”的BringToFront()方法

我这样就成功了,仅供参考。
startdo 2010-05-19
  • 打赏
  • 举报
回复
楼主,我找到个完美解决办法,我也是遇到这个困惑,找了好多方法,都不行
今天灵机一动,换个思路就能实现这个效果
其实我们的目的是主窗口上显示一些信息,一进系统就看得到,但是开子窗口后要把这个东西压掉。
由于mid窗口的特性,直接上是不行的。

我换了个方法,把要显示在主窗口的信息当做一个子窗口(frmWelcome),主窗口显示时反它打开,如下:
frmWelcome frmWelcome = new frmWelcome();
frmWelcome.MdiParent = this;
frmWelcome.FormBorderStyle = FormBorderStyle.None;
frmWelcome.WindowState = FormWindowState.Normal;
frmWelcome.Show();

为自己这么好的想法喝彩!!!
amdiqpl 2010-04-12
  • 打赏
  • 举报
回复
楼上using System.Runtime.InteropServices; [DllImport("user32")]方法虽是可以让子窗口显示在有控件的主窗口之上;但不能在打开的多个子窗口之间切换。

rubperfect 2010-01-25
  • 打赏
  • 举报
回复
[Quote=引用 46 楼 hululuzhu 的回复:]
解决了:
using System.Runtime.InteropServices;

[DllImport("user32")]
public static extern int SetParent(int hWndChild, int hWndNewParent);

//价格temp2是你的子form
temp2.MdiParent = this;
temp2.Show();
SetParent((int)temp2.Handle, (int)this.Handle);
[/Quote]

强的。。。这样就可以了!
cfansw 2010-01-21
  • 打赏
  • 举报
回复
公司招聘高级C#工程师
3年以上C#.NET技术路线经验(开发、分析、设计)、1年以上的软件系统设计经验,熟悉UML建模,

珠海政采软件技术有限公司北京分公司
地址:北京市海淀区中关村软件园
网址:http://www.gpcsoft.com
邮箱:wangyq@gpcsoft.com;evalywang99@yahoo.com.cn
cfansw 2010-01-21
  • 打赏
  • 举报
回复
缭绕飘渺 2010-01-21
  • 打赏
  • 举报
回复
楼主真有个性
在父窗口上放那些控件有必要吗
hululuzhu 2010-01-21
  • 打赏
  • 举报
回复
解决了:
using System.Runtime.InteropServices;

[DllImport("user32")]
public static extern int SetParent(int hWndChild, int hWndNewParent);

//价格temp2是你的子form
temp2.MdiParent = this;
temp2.Show();
SetParent((int)temp2.Handle, (int)this.Handle);
sunchen891229 2010-01-21
  • 打赏
  • 举报
回复
路过,学习了~
dell0923 2010-01-21
  • 打赏
  • 举报
回复
是你对MDI的理解错误了,不要给MainForm添加除了上面菜单、工具栏以外地方添加控件。
你设计中的那个控件,也应该是一个ChildrenForm的内容,只是你感觉这个ChildrenForm像是其他ChildrenForm的入口。但是他们应该是平行的。
spmzfz 2010-01-20
  • 打赏
  • 举报
回复
我来帮楼主回答,请楼主包涵:
[Quote=引用 26 楼 sammyke1 的回复:]
那你把其他的Toplevel = false;不行吗?
[/Quote]

2008 MSDN SP1 :
Toplevel 是获取或设置一个值,该值指示是否将窗体显示为顶级窗口。多文档界面 (MDI) 父窗体必须是顶级窗口。顶级窗体是没有父窗体的窗口,或者其父窗体是桌面窗口。顶级窗口通常用作应用程序中的主窗体。

因此.Toplevel = false 在这里不起作用。

[Quote=引用 27 楼 liherun 的回复:]
form2.BringToFront();
[/Quote]

.BringToFront(); 好像也不起作用 ,郁闷。。。
liherun 2010-01-20
  • 打赏
  • 举报
回复
form2.BringToFront();
加载更多回复(41)
项目名称:高仿QQ2013通讯DEMO-10.30更新 版本号:10.30 最新版本 下载内容: (C#)CC2013局域网通讯源码一份, 可引用至工具箱最新版CSkin.dll-10.30版本界面库一份。 界面库更新说明: CC2013-10.30 1.由于SkinForm名字太多人使用,界面库命名正式改为CSkin.dll,官网www.cskin.net。 2.SkinTabControl标签中添加菜单箭头,可点击展开菜单。 3.SkinTabControl添加标签关闭按钮。 4.修复部分中文乱码问题。 5.优化好友列表右键菜单。 6.将窗体自定义系统按钮改为集合模式,可添加无数个自定义系统按钮。自定义系统按钮事件中可以 e.参数 来判断。 7.增加360安全卫士-DEMO案例。 8.增加SkinAnimatorImg控件,用于支持位图动画的播放。如360的动态logo。 9.各种细节BUG优化。 CC2013-10.11 1.添加SkinTabControlEx,加入更加自定义的美化属性和动画效果。 2.添加SkinAnimator,通用动画控件。 3.添加Html编辑器控件 4.修复SkinButton图标和文本相对位置的BUG CC2013-9.26 1.优化好友列表CPU占用 2.好友列表加入好友登录平台属性:安卓 苹果 WEBQQ PC 3.优化标题绘制模式,新添标题绘制模式属性。 4.新添标题偏移度属性。 5.加入圆形进度条控件:ProgressIndicator。 CC2013-9.5.2 1.优化截图控件,截图工具栏加入新功能。 2.解决个人信息卡和天气窗体显示后不会消失的问题。 3.各种细节BUG优化。 CC2013-9.5.1 1.解决贴边左右隐藏的BUG。 2.解决窗体点击事件不能触发的问题。 3.优化SkinButton继承父容器背景色的代码。 4.解决SkinButton异常错误。 CC2013-9.3 1.好友列表右键菜单没反应问题。 2.新增美化控件SkinDatagridview。 3.密码软件盘回删不了文字问题。 4.双击窗体最大化,最大化后再双击恢复原大小,(win7)。 5.部分细节调优。 实现功能: 1.界面库中多达25个自定义换肤控件,让每个控件设设属性就能达到你想要的效果,支持图片换肤和色调绘制。 2.四边阴影,毛边效果,可以设置阴影宽度和阴影颜色,支持所有系统。 3.拥有密码键盘输入,防护更贴心。 4.8种圆角窗体模式供你选择,淋漓尽致,润滑如圆。 5.登录主界面后,有登陆提示窗,提示上次登录的城市和时间。 6.皮肤随心变:拖动任意一张图片至主界面,就可以改变皮肤。 7.皮肤色调获取:改变皮肤的同时,将计算图片色调,再将其运用到窗体背景色。 8.皮肤尾部渐变:上下左右方均可实现,渐变皮肤。 9.皮肤拖拉方向:可以选择皮肤在拉伸的时候,粘着哪一边拖拉。 10.GDI+界面重绘,处理消息机制,3种移动模式和拉伸是否启用只需要设置一个属性的事就可以解决。 11.界面渐变闪现和闪退:不再像平凡的突然出现,采用API渐变机制,渐渐出现和消失,win7系统下还有动态缩小至任务的效果。 12.完美好友列表,可添加上千好友,不卡不掉线,还可以拖动好友到其他分组。 13.好友悬浮至头像可以查看详细资料卡。 14.窗口可调渐变后透明度:让窗体看起来更像是Vista玻璃窗体风格。 15.聊天窗口可发送图片,大文件,表情,还有震动。 16.按钮控件背景色拥有继承窗体背景主色调的功能,让整体色调保持一致。 17.更是有和如出一辙的扣扣截图。仿真度也达到100%,完美修复所有已知BUG。 18.聊天窗口,可以调字体颜色和字体样式等多项功能。 20.SkinLabel与SkinButton控件字体与窗体标题可以根据背景色暗亮度自动调节字体为黑还是白。 21.MessageBox提示框的美化,并继承调用窗口的色调与背景,MessageBox可所谓已达到帅气的不能再帅气的境界了。 22.天气皮肤自动变,所有窗体根据当地天气自动决定皮肤背景,CC最帅气功能之一。 23.个人资料卡及聊天窗体拥有动态CC秀展示。 24.主界面拖动换肤的同时,所关联的窗体皮肤也会跟着变。 25.多线程大文件传输功能,支持无上限大文件传输,有进度条显示进程度。 26.界面库已封装了大图取主色调,颜色判断暗亮等多项功能。 27.如果你觉得获取天气让你的登录太慢不想要的话,注释相关调用方法即可快速登录。 界面库交流群:306485590 本人QQ:345015918 注意: Demo版不包括更新,为方便用户查看和使用属性等方法,dll只轻微加密。想反编译的就不要尝试了,里面有上百个类,改错改到你哭。 介意购买正版,永久更新配源码。 看截图或者想购买商业版的用户请访问以下地址: http://www.51aspx.com/code/TotalLikeQQ2013 特权:购买商业版的用户,有权利享有最快的更新服务,第一时间将最新版本的dll源码送到你手上。 使本项目源码或本项目生成的DLL前请仔细阅读以下协议内容,如果你同意以下协议才能使用本项目所有的功能,否则如果你违反了以下协议,有可能陷入法律纠纷和赔偿,作者保留追究法律责任的权利。 1、你可以在开发的软件产品中使用和修改本项目的源码和DLL,但是请保留所有相关的版权信息。 2、不能将本项目源码与作者的其他项目整合作为一个单独的软件售卖给他人使用。 3、不能传播本项目的源码和DLL,包括上传到网上、拷贝给他人等方式。 4、以上协议暂时定制,由于还不完善,作者保留以后修改协议的权利。 时间:2013-7-5 作者: 乔克斯 请保留以上版权信息,否则作者将保留追究法律责任。

110,590

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧