C#委托的用法

来源:百度知道 编辑:UC知道 时间:2024/06/30 23:01:57
在C#中我想在一个方法中调用另一个按钮的事件,怎样来实现?
委托具体要怎么来用.

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)
{
//
}