winform程序从数据库中取值动态生成菜单,在给菜单动态加点击事件时有如下问题foreach (var b in resourceManager.GetResourcePrivilege()){
ToolStripMenuItem subMenu = new ToolStripMenuItem();
subMenu.Text = b.ResourceName;
subMenu.Click += new EventHandler( b.ResourceCommand );         //想让该处的方法名b.ResourceCommand从数据库中提出
topMenu.DropDownItems.Add(subMenu);
}private void ExitToolStripMenuItem_Click(object sender, EventArgs e)
        {
            Application.Exit();
        }    其中new EventHandler( b.ResourceCommand );的b.ResourceCommand是从数据库中取得的一个字符串,现在的问题是,想b.ResourceCommand做为方法名称来用,可是报错。如何才能让实现把数据库中取的值转换为事件的方法名称

解决方案 »

  1.   

    参考:    class Program
        {
            static void Main(string[] args)
            {
                Button btn = new Button();
                Delegate del = Delegate.CreateDelegate(typeof(EventHandler), typeof(Program).GetMethod("btn_Click", BindingFlags.Static | BindingFlags.NonPublic));
                btn.Click += del as EventHandler;
                btn.Text = "Test";
                Form f = new Form();
                f.Controls.Add(btn);
                f.ShowDialog();
                Console.ReadLine();
            }        static void btn_Click(object sender, EventArgs e)
            {
                MessageBox.Show("Hello");
            }