如题,我打算给某个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); }
你确定你的 btnNum0 到 btnNum9 都在 this.pnlNumBtn.Controls 中吗?
自己犯了一个低级错误:我是先添加的按钮,后添加的容器。
结果表面上按钮在容器的上方,实际上却不知容器中。
刚才试了一下,现在好了,谢谢啦!