首页 新闻 会员 周边

C#事件批量注册的问题

0
悬赏园豆:5 [已解决问题] 解决于 2013-12-27 10:59

如题,我打算给某个panel容器中的所有按钮注册同一个单击事件。

我分开注册是没有问题的(如下注释部分),

但是使用foreach循环注册就无法注册成功。

麻烦知道的大侠帮忙分析一下,谢谢啦! 

        /// <summary>
        /// 初始化
        /// </summary>
        private void Init()
        {
            //this.btnNum1.Click += new System.EventHandler(this.btnNumber_Click);
            //this.btnNum2.Click += new System.EventHandler(this.btnNumber_Click);
            //this.btnNum3.Click += new System.EventHandler(this.btnNumber_Click);
            //this.btnNum4.Click += new System.EventHandler(this.btnNumber_Click);
            //this.btnNum5.Click += new System.EventHandler(this.btnNumber_Click);
            //this.btnNum6.Click += new System.EventHandler(this.btnNumber_Click);
            //this.btnNum7.Click += new System.EventHandler(this.btnNumber_Click);
            //this.btnNum8.Click += new System.EventHandler(this.btnNumber_Click);
            //this.btnNum9.Click += new System.EventHandler(this.btnNumber_Click);
            //this.btnNum0.Click += new System.EventHandler(this.btnNumber_Click);
            foreach (Control ctrl in this.pnlNumBtn.Controls)
            {
                ctrl.Click += new System.EventHandler(this.btnNumber_Click);
            }
        }

        /// <summary>
        /// 通用事件:数字按钮单击
        /// </summary>
        private void btnNumber_Click(object sender, EventArgs e)
        {
            string append = ((Button)sender).Text;
            this.txtInput.AppendText(append);
        }
ExDevilLee的主页 ExDevilLee | 初学一级 | 园豆:184
提问于:2013-12-27 10:47
< >
分享
最佳答案
0

你确定你的 btnNum0 到 btnNum9 都在 this.pnlNumBtn.Controls 中吗?

收获园豆:5
Launcher | 高人七级 |园豆:45045 | 2013-12-27 10:52

自己犯了一个低级错误:我是先添加的按钮,后添加的容器。

结果表面上按钮在容器的上方,实际上却不知容器中。

刚才试了一下,现在好了,谢谢啦!

ExDevilLee | 园豆:184 (初学一级) | 2013-12-27 10:59
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册