打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
无法将顶级控件添加到控件

使用环境:

VS2010,C#

出错场景:

收到一个新的连接时,为其弹出一个新的对话框。

在设置对话框的父窗口时出错!

错误代码:

[csharp] view plain copy
  1. Form2 newForm=new Form2();  
  2. newFormParent = this;  
  3. newForm.Show();  
错误提示:

未处理的ArgumentException:无法将顶级控件添加到控件。

错误原因:

Form默认为顶级控件,将其设置为非顶级控件即可添加。

解决方法:

只要在添加控件的代码之前将Form设置为非顶级控件即可解决错误。

[csharp] view plain copy
  1. Form2 newForm=new Form2();  
  2. this.TopLevel = false;  
  3. newFormParent = this;  
  4. newForm.Show();  
发现没有用,仍然会提示上述错误...

后来再想,可能是因为form1是已经存在的窗口,而newForm是刚创建的窗口,所以将newForm的TopLevel属性设置为false;

[csharp] view plain copy
  1. Form2 newForm=new Form2();  
  2. newForm.TopLevel = false;  
  3. newFormParent = this;  
  4. newForm.Show();  
运行,发现这样是可行的!

总结:

在出现这种错误时,需要设置TopLevel属性,而且要分析是要设置哪个控件的TopLevel属性



本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
用C#一步步写串口通信
C#WinForm实践开发教程》1.Windows编程基础.ppt
关于在c#中创建用户控件后,winform应用程序在调用中无法通过点击用户控件的子控件为其自动添加事件代码的问题
C# Control的Invoke和BeginInvoke及其实现机制
c#如何将子窗体显示到父窗体的容器(panel)控件中
winform中防止重复打开多个相同子窗体
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服