你再循环生成控件的时候应该添加本身的击键事件
button[i].Click += new EventHandler(button_Click);
这个时候,生成的BUTTON都会指向一个事件
在这个事件中实例化一个BUTTON 让它等于激活者就可以了
实例代码:
//动态创建添加5个button,这里就不设坐标了
for(int i=0;i <5;i++)
{
Button btn=new Button();
btn.Text=btn+i.Tostring();
btn.ID=btn+i.Tostring();
btn.Click +=EventHadler(Btn_Click);
this.Page.Controls.Add(btn);
}
protected void Btn_Click(object sender, EventArgs e)
{
Button btn=(Button)sender;
switch(btn.ID)
{
case "btn1":
//执行btn1的要执行的方法;break;
case "btn2":
//执行btn2的要执行的方法;break;
case "btn3":
//执行btn3的要执行的方法;break;
}
}
for(int i=0;i <5;i++)
{
Button btn=new Button();
btn.Text=btn+i.Tostring();
btn.ID=btn+i.Tostring();
btn.Click +=EventHadler(Btn_Click);
this.Page.Controls.Add(btn);
}
protected void Btn_Click(object sender, EventArgs e)
{
Button btn=(Button)sender;
switch(btn.ID)
{
case "btn1":
//执行btn1的要执行的方法;break;
case "btn2":
//执行btn2的要执行的方法;break;
case "btn3":
//执行btn3的要执行的方法;break;
}
}
思路....
首先你在循环添加Butten控件时就要将Butten的CommandArgument属性设置一个值,来标记一个Butten以供以后可以通过这个标记来找到这个Butten
最后在Butten事件中通过得到当初设置的标记即可找到点击的是哪个按钮了
string argu = ((Butten)sender).CommandArgument
实现定义个数组 s[]
然后按钮一被点击了就把s[1]置一
按钮2被点击了就把s[2]置一
在被调函数中查看数组s的值就知道了
看了之后记得把数组S清0便于下次看
把sender强制转换成Button然后取ID就行了
回答补充:
请看icdbow的回答
同时或者写如下代码也可以
if(sender == Button1){
}
else if (sender == Button2){}
其中Button1和Button2是你页面中生成字段的控件引用