引发事件时的NullReferenceError

本文关键字:NullReferenceError 事件 | 更新日期: 2023-09-27 18:06:00

我有一个小的用户控件,其中有一个文本框和一个按钮。我在包含用户控件的页面中有一个标签。在用户控件的按钮单击事件中,我想找出用户输入值的区域,并希望在主页面的标签中显示该区域。

用户控件

public partial class WebUserControl1 : System.Web.UI.UserControl
{
   public delegate void myeventhandler(object sender,MyEventArgs e);       
    public event myeventhandler MyEvent;        
     protected void Button1_Click(object sender, EventArgs e)
     {
       int radious= Convert.ToInt32(TextBox1.Text);
       double area = 3.14 * radious * radious;          
       MyEventArgs myeventargs = new MyEventArgs();
       myeventargs.Area = area;
       MyEvent(this, myeventargs);        
    }        
}
public class MyEventArgs : EventArgs
{
    public double Area { set; get; }
}
主页

public partial class _Default : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        WebUserControl1 objuc = new WebUserControl1();           
        objuc.MyEvent += new WebUserControl1.myeventhandler(DisplayArea);              
    }
    public void DisplayArea(object sender,MyEventArgs e) 
    {
         Label1.Text   = e.Area.ToString();               
    }
}

但我得到一个NullReferenceError在行

MyEvent(this, myeventargs);

引发事件时的NullReferenceError

在触发MyEvent之前必须检查它是否为空。

if(null != MyEvent)
    MyEvent(this, myeventargs); 
相关文章:
  • 没有找到相关文章