using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace 三枪控件2
{
public partial class sanQiangButton : UserControl
{
//事件的标准写法
//event 委托类型 事件名{add remove}
//private SanQiangDelegate _onSanQiang;
//public event SanQiangDelegate OnSanQiang
//{
// //add remove最终也是编译生成两个方法
// add
// {
// //添加监听
// _onSanQiang += value;
// }
// remove
// {
// _onSanQiang -= value;
// }
//}
//微软提供的简化写法
//编译器自动生成一个private委托成员和add remove方法
public event SanQiangDelegate OnSanQiang;//常规写事件都这样写
private int clickCount = 0;
public sanQiangButton()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
clickCount++;
if (clickCount == 3)
{
if (OnSanQiang != null)
{
OnSanQiang();//触发事件
}
}
}
}
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace 三枪控件2
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
sanQiangButton1.OnSanQiang += clickMsg;//订阅事件
sanQiangButton1.MouseMove += sanQiangButton1_MouseMove;
}
void sanQiangButton1_MouseMove(object sender, MouseEventArgs e)
{
MessageBox.Show("双击");
}
void clickMsg()
{
MessageBox.Show("三枪");
}
private void sanQiangButton1_MouseMove_1(object sender, MouseEventArgs e)
{
}
private void sanQiangButton1_Load(object sender, EventArgs e)
{
}
}
}
public delegate void SanQiangDelegate();
}