C#委托的用法
来源:百度知道 编辑:UC知道 时间:2024/06/30 23:01:57
委托具体要怎么来用.
1. 事件和委托不是一个概念,你如果是调用control的事件,可以直接在其对应的事件eventhandler上attach你自己的事件方法就好了
如
this.Button1.MouseDown +=new MouseEventHandler(Button1_MouseDown);
private void Button1_MouseDown(object sender, MouseEventArgs e)
{
if(e.Button == MouseButtons.Left)//左键按下
MessageBox.Show(e,Button.ToString());
}
2.event本身是C#在委托基础上封装一些用于多事件注册的机制,这是event和委托的区别,委托仅仅是控件类定义和用户自定义事件方法共同遵守的方法的contract契约,一个方法类型而已
如果只是调用另一个按钮的事件的响应方法,则不需要委托,只需要以调用该方法即可。如
this.bthOther_Click(null, new Argument());
如果需要完整地模拟另一个按钮的点击,需要用invoke方法,可以看一下msdnlib的帮助。
//下面就是定义一个委托和一个事件把Button1的Click事件绑定到事件btnevent中去!
delegate void Button1_click(object sender, EventArgs e);
event Button1_click btnevent;
Button1.Click+=btnevent;
//下面就是使用事件btnevent
btnevent+=btn_click;
//这个就是你方法
private void btn_click(object sender, EventArgs e)
{
//
}