这里介绍通过委托取消Button事件switch-case的方法。需要注意的是,事先要按顺序在各个Button的Tag属性中设置0、1、2、3……等序号,其作用请详看代码。
/*定义委托*/ public delegate 类型或viod MethodDelegate(参数1, 参数2); private void buttonC_Click(object sender, EventArgs e) { Button button = (Button)sender; /*向委托添加方法*/ MethodDelegate methodDelegate = 你的方法1; methodDelegate +=你的方法2; methodDelegate +=你的方法3; ………. /*转换成数组*/ Delegate[] delegates = methodDelegate.GetInvocationList(); /*根据button.Tag中序号选择委托列表数组中相应方法*/ MethodDelegate method = (MethodDelegate)delegates[Convert.ToInt16(button.Tag)]; /*执行*/ 类型 i = method(参数1, 参数2); } Private 类型或viod 你的方法1 (参数1, 参数2) { ………. } Private 类型或viod 你的方法2 (参数1, 参数2) { ………. } Private 类型或viod 你的方法3 (参数1, 参数2) { ………. }