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做为方法名称来用,可是报错。如何才能让实现把数据库中取的值转换为事件的方法名称
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做为方法名称来用,可是报错。如何才能让实现把数据库中取的值转换为事件的方法名称
{
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");
}