我有一个这样的函数f()用来在TABLE中加入N个BUTTON按钮
我想触发每一个加到TABLE中的BUTTON事件,请教BUTTON接钮触发事件如何写
private void f()
{
int numrows = 20;
int numcells = 20;
for (int j=0; j<numrows; j++) 
{          
  TableRow r = new TableRow();
  for (int i=0; i<numcells; i++) 
    {
    TableCell c = new TableCell();
    Button BTN1=new Button();
    BTN1.Text=j.ToString() + i.ToString();
    c.Controls.Add(BTN1);
    row=i;cell=j;
    BTN1.Click += new System.EventHandler(g);//这里写得对吗
                           //把触发事件写成g()函数可以吗,是不是要写成多个触发事件,
    r.Cells.Add(c);
             }
   Table4.Rows.Add(r);
}
}

解决方案 »

  1.   

    可以, 不用写多个, 但必须是下面类型
    void g(object sender, EventArgs e)
    {
    //...
    }
      

  2.   

    可以通过判断sender来区分是哪个按钮,再调用不同的函数去处理
      

  3.   

    判断sender,
    sender即为触发当前事件的那个按钮~~
      

  4.   

    可以这样处理
    void g(object sender, EventArgs e)
    {
       if ((Button)sender).Text == "00")   // j = 0 , i = 0 的按钮
       {
       }
       if ((Button)sender).Text == "01")   // j = 0 , i = 1 的按钮
       {
       }}
      

  5.   

    谢谢大家,我写出了我的g()函数!不过获取字符串感觉有点麻烦,有没有能改动一下!
    private void g(object sender, System.EventArgs e)
    {

    Label1.Text = ((Button)sender).Text.ToCharArray(0,2)[0].ToString();//获取i值
             Label2.Text = ((Button)sender).Text.ToCharArray(0,2)[1].ToString();//获取j值
    //这是一个字符串的操作,有更简单的方法吗
    //
    }
      

  6.   

    我给了分,能否再问下SubString这个具体怎么用来获取字符
    比如((Button)sender).Text值等于12
    那么怎么样用好的方法来取得1和2,使其分开获得