Button 是根据数据库中信息动态生成,在为其绑定事件时遇到如题困难,
请帮忙解决.
数据库信息如下:代码:
private void createBtn()
        {
            List<BtnFun> lBtn;
            using (PTE p = new PTE())
            {
                 lBtn = (from btn in p.BtnFun select btn).ToList<BtnFun>();
            }
            TableRow tr = new TableRow();
            foreach (BtnFun b in lBtn)
            {
                Button btn = new Button();
                btn.ID = b.BtnID;
                btn.Text = b.BtnText;
                btn.Visible = (bool)b.BtnVisible;
                
               // 这里如何把变量当方法绑定到Click事件中
               //btn.Click += new EventHandler(b.btndelegate);                TableCell tc = new TableCell();
                tc.Controls.Add(btn);
                tr.Cells.Add(tc);
            }
            tbtn.Rows.Add(tr);
        }事件绑定C#

解决方案 »

  1.   

    楼主问题跟这个帖子一样吧
    http://bbs.csdn.net/topics/390413386
      

  2.   


    {
       ...
       btn.Click += GetHandler(b.btndelegate);
    }
    private EventHandler GetHandler(string cmd)
    {
       switch(cmd.ToLower())
       {
          case "add": return this.add;
          case "alter": return this.alter;
          case "check": return this.check;
          case "del": return this.del;
       }
       return null;
    }
      

  3.   

    btn.Click += (EventHandler)Delegate.CreateDelegate(typeof(EventHandler), this, this.GetType().GetMethod(b.btndelegate, BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic));