private void button1_Click(object sender, EventArgs e)
{
Button newbtn = new Button();
this.Controls.Add(newbtn);
newbtn.Click += new EventHandler(newbtn_click); }
public void newbtn_click(object sender, EventArgs e)
{
Form2 frm2 = new Form2();
frm2.ShowDialog();
}这样可以实现动态生成按钮并且实现生成的按钮的newbtn_click方法
但是现在我能得到的只是一个字符串 "newbtn_click"要怎么样才能通过这个字符串来调用newbtn_click这个方法啊,求大神啊 在线等!
{
Form2 frm2 = new Form2();
frm2.ShowDialog();
}然后无论是点击,还是传来字符串,都调用这个方法即可,而你需要做的就是判断一下.
this.GetType().GetMethod("newbtn_click").Invoke(this, null);
我的目的是根据传入的字符串不同来选择不同的方法打开不同的窗口
而且这个public void newbtn_click(object sender, EventArgs e)是点击事件 不能改滴
if(getStr=="newbtn_click")
{
newbtn_click(null,null);
}
case"1":
me.show(a窗口);
break;
this.GetType().GetMethod("newbtn_click").Invoke(this,new object[]{this,null});
但是newbtn.Click += new EventHandler(this.GetType().GetMethod("newbtn_click").Invoke(this,new object[]{this,null}));
报错啊 错误:应输入方法名称
vEventInfo.AddEventHandler(newbtn,Delegate.CreateDelegate(vEventInfo.EventHandlerType, this, "newbtn_click"));
相当于newbtn.Click += new EventHandler(newbtn_click);