本文主要是介绍如何为事件传递参数,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
有一个用户控件,如图:
有一个form窗体,添加此用户控件,此控件的作用,是让用户输入用户名和密码,然后点击登录进行验证,如果输入正确就将整个控件的背景颜色设置为绿色,错误的话设置为红色。具体的验证过程放到用户控件的调用者身上。用户验证之后,无论正确与否都返回一个结果, 用户控件根据这个结果设置控件的背景颜色。
所有事件都不要加返回值,都是void类型
用户控件的代码如下:
namespace WindowsFormsApplication1
{public delegate void ValidatorDelegate(object sender, MyEventArgs e);public partial class ValidatorUserControl : UserControl{//事件
public event ValidatorDelegate On_ValidtorUser;public ValidatorUserControl(){InitializeComponent();}private void button1_Click(object sender, EventArgs e){string username = txtUserName.Text.Trim();string password = txtPwd.Text.Trim();MyEventArgs myevent=new MyEventArgs(){UserName=username,Password=password,Result=false};if (On_ValidtorUser!=null){On_ValidtorUser(this.button1, myevent);if (myevent.Result == true){this.BackColor = Color.Green;}else{this.BackColor = Color.Red;}}}}public class MyEventArgs{public string UserName { get; set; }public string Password { get; set; }public bool Result { get; set; }}
}
事件的参数可以根据自带的事件来进行书写。
form窗体的代码如下:
namespace WindowsFormsApplication1
{public partial class Form3 : Form{public Form3(){InitializeComponent();}private void Form3_Load(object sender, EventArgs e){this.validatorUserControl1.On_ValidtorUser += new ValidatorDelegate(validatorUserControl1_On_ValidtorUser);}void validatorUserControl1_On_ValidtorUser(object sender, MyEventArgs e){if (e.UserName.ToUpper()=="ADMIN" && e.Password.ToUpper()=="123456"){e.Result = true;}}}
}
这就是为事件传递参数。
委托与事件的区别:
这篇关于如何为事件传递参数的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!