当前位置:编程学习 > asp >>

.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 ,
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,