使用环境:
VS2010,C#
出错场景:
收到一个新的连接时,为其弹出一个新的对话框。
在设置对话框的父窗口时出错!
错误代码:
- Form2 newForm=new Form2();
- newFormParent = this;
- newForm.Show();
未处理的ArgumentException:无法将顶级控件添加到控件。
错误原因:
Form默认为顶级控件,将其设置为非顶级控件即可添加。
解决方法:
只要在添加控件的代码之前将Form设置为非顶级控件即可解决错误。
- Form2 newForm=new Form2();
- this.TopLevel = false;
- newFormParent = this;
- newForm.Show();
后来再想,可能是因为form1是已经存在的窗口,而newForm是刚创建的窗口,所以将newForm的TopLevel属性设置为false;
- Form2 newForm=new Form2();
- newForm.TopLevel = false;
- newFormParent = this;
- newForm.Show();
总结:
在出现这种错误时,需要设置TopLevel属性,而且要分析是要设置哪个控件的TopLevel属性。