I have an application in which i have added a usercontrol on the form.
When i check this.parentForm in the userControl constructor it gives a null reference
My userControl Code is like
public UserControl1()
{
InitializeComponent();
if (this.ParentForm != null)//ParentReference is null
{
MessageBox.Show("Hi");//Does Not get Called
}
}
When the control is being created, it won’t have been added to a form yet – so of course the parent form will be null.
Even if you’d normally write it as:
You should think of it as:
Now your constructor is being executed in the first line, but the first mention of
formis in the second line… so how could the control have any visibility of it?You should probably be handling the
ParentChangedevent instead, and taking appropriate action then. (Apologies if you’re not using Windows Forms – I’m sure there’s an equivalent for other UI frameworks; next time it would be useful if you could state what you’re using in the question.)