VBA控件教程:WithEvents 与窗体上的控件事件的比较

2015-06-04 12:40 阅读 369 次 评论关闭

可能已经注意到,在使用 WithEvents 变量的方式和处理某个窗体上控件所产生的事件的方式这二者之间,存在某些相似之处。在两种情况下,当在代码窗口右边下拉菜单上选择事件时,都将得到包含事件正确参数的事件过程。

事实上,确切地说二者机制是相同的。控件是作为窗体类的属性来处理的,并且这个属性的名字,就是在“属性”窗口中赋给控件 Name 属性的那个值。

看起来似乎有一个与控件同名的 Public 模块级的变量,而且所有控件的事件过程名,都以这个变量的名字为起始,就象 WithEvents 变量情况下,它们都以 WithEvents 变量名为起始一样。

通过将 mWidget 变量声明为 Public 而不是 Private,可以很容易地看到这一点。这样做时,mWidget 将作为 Form1 的一种属性出现在“对象浏览器”中,象在另一种情况下,控件出现在窗体上一样。

两种情况的不同之处在于:当创建窗体时,Visual Basic 自动创建该窗体上所有控件的实例,而在另一种情况下,必须创建自己的类(这些类的事件是想要处理的)的实例,并且应把那些对象的引用赋给 WithEvents 变量。

详细信息   可以将自己的事件添加到窗体中,如下面“向窗体添加事件”所述。

版权声明:本文著作权归原作者所有,欢迎分享本文,谢谢支持!
转载请注明:VBA控件教程:WithEvents 与窗体上的控件事件的比较 | 猎微网

评论已关闭!