全局事件

通常我们会针对每一个菜单组件编写事件代码,因为这些组件各自要完成不同的功能。但是有的时候有一些组件会用来完成同样的功能,例如你增加了30个按钮,用来向表格插入30个不同的符号,难道我们要针对这30个按钮编写30次相同的代码吗? 如果代码有变动,难道我门又要进行30次同样的修改吗?
考虑到这种特殊的情况,主菜单提供了全局事件处理程序,我们前面介绍的菜单组件事件,都有同名的全局事件。但我们单击任何一个按钮,首先会执行该按钮的Click事件,然后再执行全局Click事件,其他事件的执行过程亦如此。

所有的全局事件的e参数均只有一个属性:

Sender:返回触发事件的组件。

有了全局事件,那么前面的问题就迎刃而解了,首先增加30个按钮,为了便于代码的编写,这些代码分别命名为:Symbol1、Symbol2、Symbol3....,然后将这些按钮的标题设置为要插入的符号,最后将全局Click事件的代码设置为:

If e.Sender.Name.StartsWith("Symbol") Then
   
CurrentTable.Value = e.Sender.Text
End
If

很简单,对么?


本页地址:http://www.foxtable.com/webhelp/topics/1129.htm