第一种方式,你如何选择基于EventArgs的你的行动。如果e发送一些值,您应该创建自定义EventArgs类,该类具有给定值的属性。 例如:
public class ActionEventArgs : EventArgs
{
public ActionEventArgs(string valueName)
{
this.YourTypeValueName = valueName;
}
public YourType YourTypeValueName { get; set;}
}
此外,你应该像建立CustomEventHandler:
public delegate void ActionEventHandler(object sender, ActionEventArgs args)
然后,您可以创建类似ActionDoSth1(),ActionDoSth2每个动作不同的方法,等等。 更改您的OnClick为接受ActionEventArgs而不是EventArgs的和 然后就可以使用交换机内部的OnClick,例如:
protected override void OnClick(ActionEventArgs e)
{
switch(e.YourTypeValueName)
{
case sth1:
{
ActionDoSth1();
}
break;
case sth1:
{
ActionDoSth2();
}
break;
...
...
}
base.OnClick(e);
}
第二种方法是使动作的虚拟和每个操作创建子类SubButton的,你重写行动随你便。 在这种情况下,您将针对每种情况设置不同的按钮,并且不需要创建ActionEventArgs。如果您想要在一个SubButton类中执行所有操作,请忽略此项。
OnClick()方法引发Click事件。谁的唯一目的就是让每个按钮在点击按钮时都有自己的专用动作。为什么你不使用Click很难理解,必须是隧道视觉的案例。 –