动态创建MenuStrip 为每一个菜单项 添加Click 事件 在窗体中点击菜单的时候 执行click方法 但是mdiparent无效
我在类里面分装了一个动态创建MenuStrip的方法
这个MenuStrip的信息是菜单信息
然后为子菜单添加click方法
代码如下:
//为功能节点添加单击事件
if (dv[i]["url"] + "" != "")
{
subMenu.Tag = dv[i]["url"] + "";
//如果当前方法为非静态方法
//那么public static Delegate CreateDelegate(Type type, object firstArgument, MethodInfo method, bool throwOnBindFailure)
// 创建指定类型的委托,该委托表示要按指定的大小写敏感度对指定类实例调用的指定实例方法。
//Activator.CreateInstance(T)
//创建实例方法的委托
Delegate EventAgent = Delegate.CreateDelegate(typeof(EventHandler), Activator.CreateInstance(T), T.GetMethod(dv[i]["url"] + "", System.Reflection.BindingFlags.Public | System.Reflection.BindingFlags.Instance), false);
subMenu.Click += EventAgent as EventHandler;
}
public void Add(object sender, EventArgs e)
{
Form2 ChildWin=new Form2();
ChildWin.MdiParent = this;//这个代码无效
ChildWin.Show();
}
CMenuStrip
{
private Form formParent;
public CMenuStrip(Form parent)
{
formParent = parent;
//...
}
}
public void Add(object sender, EventArgs e)
{
Form2 f = new Form2();
f.MdiParent = formParent;
f.Show();
}
Form1内:
CMenuStrip cs = new CMenuStrip(this);