.net 在类中的Event事件,为什么要定义为static?
我有一个Form窗体和一个clsEvent类,
在Form窗体里面注册了事件。
在clsEvent类里面定义了委托+事件,最后也抛出了事件。但是为什么我在Form窗体里面缺获取不到该事件??
后来我修改了clsEvent类里面定义的Event事件为static静态了,Form窗体就可以获取到了?
clsEvent类
public class clsEvent
{
public delegate void ShowSometing1(string strTxtbox);
public static event ShowSometing1 btnClick1;
//如果是抛给Form窗体,一定要定义为静态类,
//Form窗体才能获取到该事件,为什么??
private string _strContent;
public string StrContent
{
get
{
return _strContent;
}
set
{
//当属性更改了,就触发事件
_strContent = value;
//在事件的发行者中触发事件。
if ( btnClick1 != null)
{
btnClick1(_strContent);
}
}
}
Form1_Load
//Form窗体向class类中注册事件
clsEvent.btnClick1 += new clsEvent.ShowSometing1(TextBoxChange)
view plain
private void button1_Click(object sender, EventArgs e)
{
clsEvent clsevent = new clsEvent();
//改变属性,从而激发事件。
clsevent.StrContent = this.textBox1.Text;
}
public void TextBoxChange(string strContent)
{
this.txtClass.Text = strContent;
}
摘自:zfanlong1314的专栏
补充:Web开发 , ASP.Net ,