当前位置: 代码迷 >> .NET组件控件 >> Winform动态加载用户控件,用户控件的中button的响应函数会执行多次解决方法
  详细解决方案

Winform动态加载用户控件,用户控件的中button的响应函数会执行多次解决方法

热度:110   发布时间:2016-05-04 23:27:18.0
Winform动态加载用户控件,用户控件的中button的响应函数会执行多次
有两个用户控件: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
避免同样的事件处理程序被指定多次。
  相关解决方案