2014-12-03 113 views
0

我有一个用户控件,应该将值传递给它的父窗体form1。如何将用户控件的值传递给父窗体?

我使用下面的代码。

用户控制

public int _control; 
public int control 
{ 
     get{return _control;} 
     set{_control=value;} 
} 

Form1中值分配给用户控件

UserControl1 uc=new UserControl1(); 
uc.control=1; 

用户控制Button_Click

var parent = this.Parent as Form1; 
//MessageBox.Show(_control.ToString()); 
parent.userNo=_control; 

Form1中

public int _userNo; 
public int userNo 
{ 
     get{return _userNo;} 
     set{_userNo=value;} 
} 

问题是,当我用messagebox.show,它会出现显示1但是当我使用

parent.userNo=_control; 

它返回一个空引用异常。

请帮忙!!!

+0

的可能重复[?什么是一个NullReferenceException,我如何修复它(http://stackoverflow.com/questions/4660142/what-is-a-nullreferenceexception-and-how- do-i-fix-it) – Sinatr 2014-12-03 09:48:33

回答

0

这意味着父母是空的。这是由于父母不是Form1类的实例。

其实,这个转换:

this.Parent as Form1 

返回NULL时this.Parent不是类型Form1的,但另一个容器。或者,如果家长没有设置。要解决这个问题,您需要获取Form的引用给用户控件,或者设置父级。是这样的:

UserControl1 uc=new UserControl1(); 
uc.control=1; 
uc.Parent = this; 
+0

谢谢!我为此使用了委托。 – 2015-01-17 19:45:21

相关问题