【发布时间】:2014-05-04 04:09:17
【问题描述】:
我有一个具有 webform1.asp.cs 和自定义类 class1 的 asp.net 应用程序。 class1 在 webform1.asp.cs 中实例化。我正在从 class1 引发自定义事件 event1。此 event1 在 webform1.asp.cs 中使用。我有一个 asp.net 文本框控件(多行)。在 webform1.asp.cs 中使用 event1 代码,我将一些文本写入 asp.net 文本框。引发事件,但文本框不显示文本。但是,当我写入 Debug 时,它会显示文本。怎么回事?
//class1中的事件代码:
public delegate void StatusChange(object sender, EventHelper args);
public class EventHelper : EventArgs
{
public string message;
}
EventHelper e1 = new EventHelper();
e1.message = "some text";
OnStatusChange(this, e1);
//在webform1.asp.cs中:
protected void Page_Load(object sender, EventArgs e)
{
Class1 cs = new Class1();
cs.OnStatusChange +=cs_OnStatusChange;
}
void cs_OnStatusChange(object sender, EventHelper e)
{
TextBox1.Text += e.message;
}
【问题讨论】:
-
您的代码在页面生命周期中在哪里被调用?是在页面初始化还是页面加载之后?
-
需要注意的一点是您的 Class1 cs 变量在 page_load 方法的范围内。没有看到比您发布的更多代码,很难判断发生了什么。 OnStatusChange 在第 1 类中的哪个位置被触发,该事件在 Web 表单中的哪个位置触发?