读书人

关于C#中的委托的有关问题,低手勿扰 -

发布时间: 2011-12-20 22:26:41 作者: rapoo

关于C#中的委托的问题,高手进,低手勿扰 ------------------ 100分求解

C# code
protected void Button2_Click(object sender, EventArgs e){    TestClick tc = Button3_Click;   tc(sender, e);}public delegate void TestClick(object sender, EventArgs e);protected void Button3_Click(object sender, EventArgs e){   Response.Write("button3 clicked");}

如上代码!我可以用委托来实现,点击BTN2时执行BTN3的事件.现在的问题是:假设有N个按钮点击事件.如果我现在点击BTN2时不确定要执行哪个按钮的事件(要通过程序自己判断,请问如何实现?也就是说:
C# code
TestClick tc ;if (a==1)tc= ??????(Button3_Click);if (a=2)tc= ??????(Button4_Click);tc(sender, e);

这里的Button3_click 是Void类型,要定义什么类型的变量来对取得这个值.(我看控件的事件属性里比如ONCLICK事件,可以选择哪个事件.但是当我这样做时却不行:
EventHandle aa=Button3_click;
tc=aa;

EventArags aa= Button3_click;
tc=aa;
---------------------------------------
求教高手,分不够再加!


[解决办法]
o,这错了,多打了个invork

private void btn_Click(object sender, eventArgs e)
{
if(BtnClick != null) BtnClick(sender, e);
}

[解决办法]
匿名方法(C#2.0以上)

BTN2.Click += delegate{ButtonClick(a);}

void ButtonCLick(a) {
switch(a) {...}
}


顺便说一下:这是很基础的问题,熟练C#语法的都应该会,而不是所谓的“高手”专利!

读书人网 >C#

热点推荐