有两个用户控件:Home和Orderinput,Home里有个按钮叫bt_Order,Orderinput里有个button叫bt_Order_Step1,控件里没有写响应函数
pl_base是主窗体中的一个pannel,用来放用户控件的
主窗体中的代码是这样的:
Home home=new Home();
Orderinput orderinput=new Orderinput();
private void Init(Control control)
{
pl_base.Controls.Clear();
pl_base.Controls.Add(control);
pl_base.Controls.Add(lb_time);
}
private void Form1_Load(object sender, EventArgs e)
{
pl_base.Controls.Add(home);
timer1.Enabled = true;
home.bt_Order.Click += new EventHandler(bt_Order_Click);
}
public void bt_Order_Click(object sender, EventArgs e)
{
Init(orderinput);
orderinput.bt_Order_Step1.Click+=new EventHandler(bt_Order_Step1_Click);
}
private void bt_Order_Step1_Click(object sender, EventArgs e)
{
Init(home);
home.bt_Order.Click+=new EventHandler(bt_Order_Click);
}
这段代码是一个循环操作,点第一个用户控件里的按钮能跳到第二个用户控件,点第二个用户控件里的按钮会跳到第一个用户控件。现在问题是每循环一次,点击button后跳转就会多一次,比如说当循环3次后点bt_Order就会加载Order控件4次。。。请问该怎么改代码才能解决问题啊???求帮忙啊。。。。。。
------解决方案--------------------
http://stackoverflow.com/questions/399648/preventing-same-event-handler-assignment-multiple-times
Preventing same Event handler assignment multiple times
避免同样的事件处理程序被指定多次。