自定义事件的基本方法:
1,创建一个事件专用委托,此委托定义了事件响应方法的签名。
2,使用event关键字为对象定义一个时间字段。
3,在合适的地方激发事件。
下面的例程是,每次单机从窗体的按键主窗体的会记录单击次数。
从窗体代码:
<pre name="code" class="csharp">using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace WindowsFormsApplication6
{
public delegate void ButtonClickedDel(int value);//1,创建委托
public partial class Form2 : Form
{
public event ButtonClickedDel ButtonClicked;//2,定义事件字段
public Form2()
{
InitializeComponent();
}
int counter;
private void button1_Click(object sender, EventArgs e)
{
counter++;
if (ButtonClicked!=null)
{
ButtonClicked(counter);//3,激发事件
}
}
}
}
主窗体代码:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace WindowsFormsApplication6
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
Form2 frm = new Form2();
frm.ButtonClicked += hehe;
frm.Show();
}
public void hehe(int value)
{
label1.Text = value.ToString();
}
}
}
开发拥有自定义事件的控件: