现在的位置: 首页 > 综合 > 正文

.net 在类中的Event事件,为什么可以定义为static?而委托类型却不可以

2013年05月23日 ⁄ 综合 ⁄ 共 741字 ⁄ 字号 评论关闭

我有一个Form窗体和一个clsEvent类,
在Form窗体里面注册了事件。
在clsEvent类里面定义了委托+事件,最后也抛出了事件。但是为什么我在Form窗体里面缺获取不到该事件??

 

后来我修改了clsEvent类里面定义的Event事件为static静态了,Form窗体就可以获取到了?

clsEvent类
public  class clsEvent
    {
        public  delegate void ShowSometing1(string strTxtbox);
                                                                  
        public static event ShowSometing1 btnClick1;                                                                                   
               
       private string _strContent;        
       public string StrContent
        {
            get
            { 
                return _strContent; 
            }
            set 
            {
                //当属性更改了,就触发事件
                _strContent = value;
                //在事件的发行者中触发事件。
                if ( btnClick1  != null)
                {
                    btnClick1(_strContent);
                }
            }
        }

 

 Form1_Load
clsEvent m_clsEvent = new clsEvent();
//Form窗体向class类中注册事件
m_clsEvent .btnClick1 += new m_clsEvent .ShowSometing1(TextBoxChange)
private void button1_Click(object sender, EventArgs e)
{
                        //改变属性,从而激发事件。
            m_clsEvent .StrContent = this.textBox1.Text;

 }
 public void TextBoxChange(string strContent)
 {
            this.txtClass.Text = strContent;
 }

 

 

抱歉!评论已关闭.