parentForm引用如何为null
本文关键字:null 引用 parentForm | 更新日期: 2023-09-27 18:19:44
我有一个应用程序,在其中我在表单上添加了一个用户控件。当我在userControl构造函数中检查this.parentForm
时,它会给出一个空引用
我的userControl代码类似
public UserControl1()
{
InitializeComponent();
if (this.ParentForm != null)//ParentReference is null
{
MessageBox.Show("Hi");//Does Not get Called
}
}
当创建控件时,它还没有添加到窗体中,因此父窗体当然将为null。
即使你通常会把它写为:
// Where form might be "this"
form.Controls.Add(new UserControl1());
你应该把它看作:
UserControl1 tmp = new UserControl1();
form.Controls.Add(tmp);
现在,您的构造函数是在第一行执行的,但第一次提到form
是在第二行。。。那么控制装置怎么能看到它呢?
您可能应该处理ParentChanged
事件,然后采取适当的操作。(如果你没有使用Windows窗体,我很抱歉-我相信其他UI框架也有类似的框架;下次如果你能在问题中说明你在使用什么,那会很有用。)
你添加了什么?实际上不需要,删除这行
if (this.ParentForm != null)//ParentReference is null
public UserControl1()
{
InitializeComponent();
MessageBox.Show("Hi");//Does Not get Called
}