您的位置:首页 > 编程语言 > C#

.net2005(C#)下实现事件和委托的简单示例

2007-10-19 14:27 791 查看

using System;


using System.Collections.Generic;


using System.ComponentModel;


using System.Data;


using System.Drawing;


using System.Text;


using System.Windows.Forms;




namespace WindowsApplication1




...{


public partial class Form1 : Form




...{


public Form1()




...{


InitializeComponent();


}


//两个button方法


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




...{


if (textBox2.Text != "" && textBox1.Text != "")




...{


eventrun er = new eventrun();


eventmsg em = new eventmsg(er);


EventLoginArgs e1 = new EventLoginArgs(textBox2.Text, textBox1.Text, textBox1.Text);


er.runlogin(e1);


}


else




...{


MessageBox.Show("Your must input all the items!", "Login Info", MessageBoxButtons.OK);


}


}


private void button2_Click(object sender, EventArgs e)




...{


eventrun er = new eventrun();


eventmsg em = new eventmsg(er);


EventLoginArgs e1 = new EventLoginArgs(textBox2.Text, textBox1.Text, textBox1.Text);


er.runlogout(e1);


}


//实现事件begin




...#region


public delegate void UserLoginEventHandler(object sender, EventLoginArgs e);//定义委托封装学生类


public delegate void CancelEventHandler(object sender, EventLoginArgs e);//定义取消委托


//定义方法,并把方法封装到以上定义的两个委托中。


public class eventmsg




...{


public void hander1(object sender, EventLoginArgs e)




...{


MessageBox.Show("登陆事件:" + "ID:" + e.strUserID + "密码:" + e.strUserPWD);


}


public void hander2(object sender, EventLoginArgs e)




...{


MessageBox.Show("取消事件:" + "ID:" + e.strUserID + "密码:" + e.strUserPWD);




}


public eventmsg(eventrun er)




...{


UserLoginEventHandler lh = new UserLoginEventHandler(hander1);


CancelEventHandler ch = new CancelEventHandler(hander2);


//把封装了方法的委托加载到事件中


er.loginevent += lh;


er.logoutevent += ch;


}


}


//定义事件及运行事件的方法


public class eventrun




...{


public event UserLoginEventHandler loginevent;


public event CancelEventHandler logoutevent;


public void runlogin(EventLoginArgs e)




...{


if (loginevent != null)




...{


loginevent(this, e);


}


}


public void runlogout(EventLoginArgs e)




...{


if (logoutevent != null)




...{


logoutevent(this, e);


}


}


}


#endregion


//实现事件end


}


//定义学生类


public class EventLoginArgs : System.EventArgs




...{


public string strUserID;


public string strUserName;


public string strUserPWD;


public EventLoginArgs(string userID, string userName, string userPWD)




...{


strUserID = userID;


strUserName = userName;


strUserPWD = userPWD;


}


}


}







内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: