VB6的事件及其与VB.net的比较

 

VB6中的事件处理方法:

 

 

 

上面是从《Programming MS Visual Basic 6.0》上贴下来的例子。

 

Class(类)中需要:

  • 事件定义:Event 
  • 事件触发:RaiseEvent 

 

客户代码事件处理:

  • 第一定义事件处理对象:Dim WithEvents ObjectXX As Class
  • 第二处理事件:

Private Sub ObjectXX_EventName

End Sub

 

对于窗体、控件使用,其实并不需要这么使用,因为有缺省的事件处理程序,例如Form_Load事件,Command1_Click事件等等。

 

但是,如果在一个Form内有一个Command1的按钮控件,那么,我们可以定义以下的事件处理程序:

Private Sub Command1_Click()

MsgBox "Old Test"

End Sub

 

另外,我们定义另外一个处理过程:

Dim WithEvents SS As CommandButton

 

Private Sub SS_Click()

MsgBox "test"

End Sub

 

执行则可以看到,两个过程都可以响应执行。而且,通过WithEvents定义的事件处理过程可以在单独的模块或类里,这样就可以隔离程序的界面和具体逻辑。

 

所以,其实对于VB.net或者C#,事件处理的方法和VB6并没有很大的差别,差别只是VB6中有缺省的事件处理过程;如同VB6有缺省的窗体一样,你可以这样使用:Form1.show,而在VB.net中必须先创建一个form,然后才可以调用。

posted on 2004-12-16 08:28  马维峰  阅读(1961)  评论(0编辑  收藏  举报