c# 事件委托小例子

来源:互联网 发布:电脑软件学校 编辑:程序博客网 时间:2024/04/30 20:16
希望对初学者有点帮助 
using System; 
using System.Collections.Generic; 
using System.ComponentModel; 
using System.Data; 
using System.Drawing; 
using System.Text; 
using System.Windows.Forms; 

namespace QQAutoMan 

    
public partial class frmMain : Form 
    

        
//声明一个委托 
        public delegate void ReceivedEventHandler(object sender, System.EventArgs e); 
        
//声明一个事件 
        public event ReceivedEventHandler Received; 
        
// 用以触发Received事件 
        protected virtual void OnReceived(EventArgs e) 
        

            
if (this.Received != null
                
this.Received(this, e); 
        }
 

        
private string _data = ""
        
// Data属性 
        public string data 
        

            
get return this._data; } 
            
set 
            

                
this._data = value; 
                
// 数据改变时触发Received事件 
                this.OnReceived(new EventArgs()); 
            }
 
        }
 



        
public frmMain() 
        

            InitializeComponent(); 
        }
 


        
private void frmMain_Load(object sender, EventArgs e) 
        

            
this.Received += new ReceivedEventHandler(showdata); 
        }
 

        
private void showdata(object sender, System.EventArgs e) 
        

            MessageBox.Show(
"收到你发来的数据:" + this.data); 
        }
 

        
private void button1_Click(object sender, EventArgs e) 
        

            
this.data = "abcd"
        }
 
    }
 
}