事件触发但不更新文本框

本文关键字:更新 文本 事件 | 更新日期: 2023-09-27 17:53:33

我有一个asp.net应用程序,它有webform1.asp.cs和一个自定义类class1。Class1在webform1.asp.cs中实例化。我正在从class1中引发一个自定义事件event1。此事件1在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;
}

事件触发但不更新文本框

最后我意识到asp.net webcontrols不会在事件发生时重新渲染,除非你做一个post back。这意味着当事件从另一个类引发时,虽然事件处理程序正在工作,并且文本框似乎在代码中填充,但它没有在UI上呈现。我最终创建了一个WPF浏览器应用程序。