ParentForm为null(在Form内的UserControl内的Button中)!

时间:2011-02-02 06:56:07

标签: c# winforms visual-studio-2008

我的代码正常运行!

我的UserControl里面有一个按钮,它在设计时在我的表单中删除。一切运作良好,当在一个按钮的事件中我调用this.ParentForm它正确地返回给我(唯一)父表单。

重构后,我将带有按钮的UserControl移动到另一个NameSpace,同一段代码不再有效。 this.ParentForm现在为NULL

我读了MSDN网站,它说只有当控件托管在IE或其他上下文中时,this.ParentForm才会返回null。但我只移动了命名空间!

有人有想法吗?

我不能使用不同的构造函数将父表单传递给它,因为在设计时Visual Studio不会呈现表单。

2 个答案:

答案 0 :(得分:4)

在将控件添加到表单之前,查看您是否正在访问控件的父表单。

您的代码我将触发用户控件类初始化,但该控件尚未添加到父窗体中。

尝试将此代码放入Control Load事件中。

答案 1 :(得分:2)

查看包含设计器生成的代码的代码隐藏文件。在重命名期间,您可能会混淆Visual Studio设计器,并且它可能在Form.designer.cs文件中“孤立”您的控件实例。

特别是,查看InitializeComponent方法中的代码,看看是否可以发现任何创建UserControl实例但不将其添加到容器的代码,或者将其添加到未添加到容器中的容器中。形式。