在生成按钮这里定义就好
Button DelButton=new Button();
tc2.Controls.Add(DelButton);
DelButton.Text="删除";
DelButton.Click += new System.EventHandler(DelTableRow);
//这样定义后,每一个按钮都会执行DelTableRow事件InitializeComponent()事件里的for...是你加进去的吧?不要它了

解决方案 »

  1.   

    多谢 sheyanfen(星宇)的提醒,
    现在的问题主要是如何声明DelTableRow事件,使得每一行的Button按钮事件只会删除当前按钮所在的表格中的行?
      

  2.   

    给每个按钮定义一个ID号,象myTR.ID="myTR"+i.ToString();一样
    DelButton.ID="myButton"+i;
    然后在按钮事件中取得当前按钮,就知道对应的行了
    void DelTableRow(object sender,EventArgs e)
    {
      string buttonid=((Button)sender).ID; //当得当前点击按钮的ID号
    }
    然后要自己处理一下,找到当前要删除的行
    (根据后面的来确定myButton0为第一行,mybutton1为第二行...)
      

  3.   

    你的事件处理程序里面的sender,e必须合法
    DelButton.Click += new System.EventHandler
    大概只能
    void DelTableRow(object sender,EventArgs e)你可以通过获取sender的属性来判断是哪一行
    比如这样
    Button DelButton=new Button();
    DelButton.Id=uint.ToString();
    tc2.Controls.Add(DelButton);
    void DelTableRow(object sender,EventArgs e)
    {
    int rowIndex=((Control)sender).ID;
    }
      

  4.   

    en
    int rowIndex=int.Parse(((Control)sender).ID);
      

  5.   


    应该是int rowIndex=int.Parse(((Control)sender).ID);