先说说需求,也就是我们要达到的效果,希望扩展按钮控件,增加一些属性,但同时我们希望默认事件仍使用Click事件,不过,在事件参数中,我们希望能够传递更多的信息,而不是Button.Click默认的参数。
当然,我们首先要写一个自定义的事件参数,为了简单起见,我们的自定义按钮控件,增加一个TagNumber属性,它传递一个整型数据,当我们处理控件的Click事件,能够从事件参数类实例中取得我们在这个属性中设置的值,因此,我们需要一个MyButtonClickAgre,它从EventArgs类派生。
/// <summary>
/// 自定义事件参数类。
/// </summary>
internal class MyButtonClickAgre : EventArgs
{
int _value;
public MyButtonClickAgre(int n)
{
this._value = n;
}
public int TheNumber
{
get { return this._value; }
}
}
现在,从Button类派生一个新类。