vb.net中的自定义事件
2010-12-28 14:25
726 查看
'VB.net 自定义事件使用方法
'1.先定义包含事件的类(如下)
Public Class TestEvent
Public Event MyEvent(ByVal s As String) '自定义事件
Public Sub StartEvent(ByVal value As String) '触发事件函数
RaiseEvent MyEvent(value) '触发事件
End Sub
End Class
'2.在使用事件的类中添加如下代码
'声明事件对象
Private WithEvents mEvent As TestEvent
'实例化
mEvent = New TestEvent
'处理事件函数 注意:函数名必须为 变量名_事件名
Private Sub mEvent_MyEvent(ByVal s As String) Handles mEvent.MyEvent
MsgBox(s)
End Sub
'触发事件
mEvent.StartEvent("11111")
3.
'声明事件对象
Private mEvent As TestEvent
'实例化以及绑定处理函数
mEvent = New TestEvent
AddHandler (mEvent.MyEvent), AddressOf OnMyEvent
'处理事件函数
Private Sub OnMyEvent(ByVal s As String) Handles mEvent.MyEvent
MsgBox(s)
End Sub
'触发事件
mEvent.StartEvent("2222222")
vb.net 中自定义类中的事件
基本思路:
1,首先在要定义事件的类中声明事件,然后使用RaiseEvent 激发该事件.
Public Class Person
Private name As String
Public Event walked(ByVal distance As Integer)
Public Sub onwalk(ByVal distance As Integer)
RaiseEvent walked(distance)
End Sub
End Class
[b]2. 使用WithEvents 声明该类的对象.
Friend WithEvents myperson As Person
3,编写事件处理代码.
Private Sub myperson_walked(ByVal distance As Integer) -
Handles myperson.walked
TextBox1.Text = "walked" & distance
End Sub
4,调用事件.
Private Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click
myperson.onwalk(20)
End Sub
[/b]
Vb.Net自定义事件的应用及应注意的地方
主窗体:
Public Event msg(ByVal i As Int16) '''首先定义一个事件
Dim i As Int16 '''定义一个变量
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
i += 1
RaiseEvent msg(i) '''激发事件
End Sub
Dim frm As Addition = Nothing '''从窗体
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
If frm Is Nothing Then
frm = New Addition
frm.main = Me '''此处是应该注意的地方,一定要把从窗体定义的主窗体设置成此窗体,否则不会引发事件!
End If
'''上面定义从窗体的方法,可以避免多次实例化窗体
frm.Show()
End Sub
从窗体:
Public WithEvents main As main '''定义主窗体事件并执行
Private Sub main_msg(ByVal i As Short) Handles main.msg
Label1.Text = i
End Sub
1,以上方法是主窗体定义事件,然后触发,在从窗体执行的情况,需要注意的是frm.main=me
此句的意思是从窗体的触发事件是主窗体定义的
2,但是在现实应用中,通常都是从窗体内容发生变化,需要及时更新主窗体,此时代码有小小的变动,如下,
需要仔细看啊!
主窗体:
Public WithEvents add As Addition
Dim frm As Addition = Nothing
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
If frm Is Nothing Then
frm = New Addition
Me.add = frm '''注意此处的区别
End If
frm.Show()
End Sub
Private Sub add_msg(ByVal i As Short) Handles add.msg
Label1.Text = i
End Sub
从窗体:
Public Event msg(ByVal i As Int16)
Dim i As Int16
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
i += 1
RaiseEvent msg(i)
End Sub
'1.先定义包含事件的类(如下)
Public Class TestEvent
Public Event MyEvent(ByVal s As String) '自定义事件
Public Sub StartEvent(ByVal value As String) '触发事件函数
RaiseEvent MyEvent(value) '触发事件
End Sub
End Class
'2.在使用事件的类中添加如下代码
'声明事件对象
Private WithEvents mEvent As TestEvent
'实例化
mEvent = New TestEvent
'处理事件函数 注意:函数名必须为 变量名_事件名
Private Sub mEvent_MyEvent(ByVal s As String) Handles mEvent.MyEvent
MsgBox(s)
End Sub
'触发事件
mEvent.StartEvent("11111")
3.
'声明事件对象
Private mEvent As TestEvent
'实例化以及绑定处理函数
mEvent = New TestEvent
AddHandler (mEvent.MyEvent), AddressOf OnMyEvent
'处理事件函数
Private Sub OnMyEvent(ByVal s As String) Handles mEvent.MyEvent
MsgBox(s)
End Sub
'触发事件
mEvent.StartEvent("2222222")
vb.net 中自定义类中的事件
基本思路:
1,首先在要定义事件的类中声明事件,然后使用RaiseEvent 激发该事件.
Public Class Person
Private name As String
Public Event walked(ByVal distance As Integer)
Public Sub onwalk(ByVal distance As Integer)
RaiseEvent walked(distance)
End Sub
End Class
[b]2. 使用WithEvents 声明该类的对象.
Friend WithEvents myperson As Person
3,编写事件处理代码.
Private Sub myperson_walked(ByVal distance As Integer) -
Handles myperson.walked
TextBox1.Text = "walked" & distance
End Sub
4,调用事件.
Private Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click
myperson.onwalk(20)
End Sub
[/b]
Vb.Net自定义事件的应用及应注意的地方
主窗体:
Public Event msg(ByVal i As Int16) '''首先定义一个事件
Dim i As Int16 '''定义一个变量
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
i += 1
RaiseEvent msg(i) '''激发事件
End Sub
Dim frm As Addition = Nothing '''从窗体
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
If frm Is Nothing Then
frm = New Addition
frm.main = Me '''此处是应该注意的地方,一定要把从窗体定义的主窗体设置成此窗体,否则不会引发事件!
End If
'''上面定义从窗体的方法,可以避免多次实例化窗体
frm.Show()
End Sub
从窗体:
Public WithEvents main As main '''定义主窗体事件并执行
Private Sub main_msg(ByVal i As Short) Handles main.msg
Label1.Text = i
End Sub
1,以上方法是主窗体定义事件,然后触发,在从窗体执行的情况,需要注意的是frm.main=me
此句的意思是从窗体的触发事件是主窗体定义的
2,但是在现实应用中,通常都是从窗体内容发生变化,需要及时更新主窗体,此时代码有小小的变动,如下,
需要仔细看啊!
主窗体:
Public WithEvents add As Addition
Dim frm As Addition = Nothing
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
If frm Is Nothing Then
frm = New Addition
Me.add = frm '''注意此处的区别
End If
frm.Show()
End Sub
Private Sub add_msg(ByVal i As Short) Handles add.msg
Label1.Text = i
End Sub
从窗体:
Public Event msg(ByVal i As Int16)
Dim i As Int16
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
i += 1
RaiseEvent msg(i)
End Sub
相关文章推荐
- vb.net自定义事件
- vb.net中的自定义事件
- 'VB.net 自定义事件使用方法
- vb.net中用户自定义控件中属性、方法、事件的理解
- [VB.NET][问]如何让父窗体响应子窗体中的某一个自定义事件
- ASP.NET 用户控件自定义属性、方法、事件
- [VB.NET]关于combobox的selectchanged事件
- [VB.NET]当使用扫描枪来得到条形码的时候,有没有办法用一个事件来捕捉
- 捕捉DataGrid的双击事件(VB.NET版本)---孟子E章
- ASP.NET中DataList自定义的按钮触发事件
- <VB.NET>自定义控件传递事件
- VB.NET下的事件和委托
- 高手论声明VB.NET事件
- [VB.NET]为ToolStrip动态加入的按钮怎么写点击事件?
- [VB.NET]form初始化事件的解决方法,高手请进...
- VB6升级到VB.NET之CheckBox的事件差异及对应案
- FCKeditor键盘事件两种方法(自定义键盘事件,自带键盘事件)asp.net
- vb.net中usercontrol向外抛出事件和属性
- ASP.NET中GridView自定义按钮触发事件
- C# 和vb.net事件