日期:2014-05-17  浏览次数:20862 次

如何把变量当方法来使用?????????
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#

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

{
   ...
   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;
}

------解决方案--------------------
btn.Click += (EventHandler)