vb.net事件代理的简单介绍

VB.net中怎么调用控件的事件软糖来回答罗 。
“调用事件”有歧义,你的意思是不是下面两种:
调用事件处理方法
直接调用对象名.方法名
'例如有这样一个按钮点击事件处理程序
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
秒表.Start()
End Sub
'调用它直接用
Button1_Click(me, new EventArgs())
引发事件
Button1.Click.Invoke(me, new EventArgs())
另外 RaiseEvent 也可以引发事件,但不能使用 RaiseEvent 来引发派生窗体的控件事件,只有自己定义的类的事件才能用它引发 。
如满意 , 请采纳 , 谢谢 。
vb.net 如何取消事件的委托?可以在选定全部子节点前 , 发送一个变量给全部子节点(有个tag属性可以利用) , 告诉它们不应该执行某事件(if语句) 。
委托是可用于调用其他对象方法的对象 。它们有时被称为类型安全函数指针 , 因为它们与其他编程语言中所使用的函数指针相似 。但不同于函数指针,Visual Basic .NET 委托是基于 System.Delegate 类的引用类型 , 它可以引用共享方法 —无需特定的类实例即可调用的方法和实例方法 。
委托在调用过程和被调用过程需要媒介的情况下是很有用的 。例如,您可能想让一个引发事件的对象能够在不同的环境下调用不同的事件处理程序 。不幸的是,引发事件的对象无法提前知道处理特定事件的事件处理程序 。Visual Basic .NET 通过在使用 AddHandler 语句时创建委托,可让您动态地将事件处理程序与事件关联 。在运行时,委托将各种调用转发到相应的事件处理程序 。
尽管可以创建自己的委托,但在大多数情况下,Visual Basic .NET 为您创建委托并提供具体信息 。例如,Event 语句将名为 EventNameEventHandler 的委托类隐式定义为 Event 语句所在类的嵌套类 , 且其签字与该事件相同 。AddressOf 语句则隐式创建委托的实例 。例如 , 以下两行代码是等效的:
AddHandler Button1.Click, AddressOf Me.Button1_Click
' AddHandler 指向引发事件的对象,AddressOf则确定该事件对象所要调用的事件处理程序
'上述行为又可以称为 监 视
AddHandler Button1.Click, New EventHandler(AddressOf Button1_Click) 。
vb.net中如何用事件和委托,会C#中的事件和委托,但不知VB.net中的语法,望给个简单的例子熟悉语法 。一委托:此示例演示如何将方法与委托关联然后通过委托调用该方法 。
创建委托和匹配过程
创建一个名为 MySubDelegate vb.net事件代理的委托 。
Delegate Sub MySubDelegate(ByVal x As Integer)
声明一个类vb.net事件代理,该类包含与该委托具有相同签名的方法 。
Class class1
Sub Sub1(ByVal x As Integer)
MsgBox("The value of x is: "CStr(x))
End Sub
End Class
定义一个方法,该方法创建该委托的实例并通过调用内置的 Invoke 方法调用与该委托关联的方法 。
Protected Sub DelegateTest()
Dim c1 As New class1
' Create an instance of the delegate.
Dim msd As MySubDelegate = AddressOf c1.Sub1
' Call the method.
msd.Invoke(10)
End Sub
二、事件
下面的示例程序阐释如何在一个类中引发一个事件,然后在另一个类中处理该事件 。AlarmClock 类定义公共事件 Alarm,并提供引发该事件的方法 。AlarmEventArgs 类派生自 EventArgs,并定义 Alarm 事件特定的数据 。WakeMeUp 类定义处理 Alarm 事件的 AlarmRang 方法 。AlarmDriver 类一起使用类,将使用 WakeMeUp 的 AlarmRang 方法设置为处理 AlarmClock 的 Alarm 事件 。
该示例程序使用事件和委托和引发事件中详细说明的概念 。

推荐阅读