美国最年轻的男歌手:RaiseEvent语句相关问题

来源:百度文库 编辑:高校问答 时间:2024/05/07 08:25:02
RaiseEvent在MSDN中的定义为:触发类、窗体或文档中在模块级声明的事件。

请问一下:RaiseEvent触发后的效果是什么?为什么在自定义的事件中需要用RaiseEvent来触发事件?
还有,在一些相关书籍里介绍关于自定义事件的过程:
1. 声明事件:Public Event 事件名(参数)
2. 在合适的地方引发事件:RaiseEvent 事件名(参数)
然后就可以在其它的地方响应该事件。

我不明白的是:既然已经定义声明了事件,为什么不能直接调用?就像声明的变量一样?

"既然已经定义声明了事件,为什么不能直接调用?就像声明的变量一样?"
首先要明确的是,事件不同于子程序,更不同于变量,事件需要出发条件和相应的参数传递,而子程序内部调用,理论上来说任何时候都可以用,有无参数均可,而变量仅仅是数据或者对象,与事件完全不同。
在自定义控件中,设计程序提供接口,设计者自己设计控件,包括事件。但是事件不是随机发生,在确定满足某个条件(比如按下鼠标),才引发事件。另外,为了区别事件和子程序,设计程序使用不同方法调用,实际上两者的启动方法也不同,事件需要加入win32的消息队列中,而子程序不需要。事件使用RaiseEvent调用,子程序使用Call或者省略。
“RaiseEvent触发后的效果是什么?”触发结果就是启动事件。
如果你还不懂,仔细看MSDN,绝对不要把事件和子程序混在一起,更不要和变量混在一起。

在VB中
用raise event就是你所说的调用

自己定义的类,就要有自己的事件
而这个事件什么时候触发,当然由类的设计者来决定
所以,这个语句是比较有用的。

另外,由于VB不是纯粹的面向对象,而是基于对象
所以有些概念在这里边理解起来不是很清晰

建议你看看其他的语言
比如C#,JAVA等。