我们通常希望每个组件响应一个事件,而这个事件的处理只需根据所响应的对象不同而作出不同的动作就可以了。而不需要为每个组件分别写一个事件处理方法。而事件的共享就是为了解决这个问题。通过c#来开发一个类微软自带计算器的例子来看看如何实现事件的共享。
1、在visual studio2010中
2、其中数字按钮(0-9)相应的click事件,其中事件的实现是要在textbox中显示所按下的按钮的数字值。
我们只需为按钮7实现一个鼠标点击事件,代码如下:
private void b_7_Click(object sender, EventArgs e) { /* * 按钮7的click事件 * * */ Button bt = (Button)sender; //获得触发click事件的对象,并转换成button类型 this.inputNum(bt.Text); //把button对象的值text作为参数传进inputNum }
这里只需知道inputNum这个方法是给textbox显示数字而已,具体实现略。这里我们定义的是b_7的点击事件,下一步就是为每个数值button的事件处理函数指向b_7这个点击事件。
只需在每个按钮的click事件中选择b_7_Click这个方法即可。
这样就可以实现了所有数字按钮共享按钮7的事件处理了。其中的好处是但我们要修改我们的处理过程时,不需去为每个组件修改,提高了代码维护的效率。