捕获RaiseEvent事件
我的自定义控件中有一个Touch事件,想在放置该控件的Form中,捕获这个Touch事件来集中处理。
请问,在Form中怎么能捕获到这个自定义控件的Touch事件。
--------------------编程问答-------------------- 前提是我还不知道您这个Touch事件是怎么激发的,假设能够正常激发该事件,先不用考虑再哪里使用raiseevent语句
在Form的Load函数中加入语句
addhandler me.自定义控件.Touch, addressof OnTouch
需要注意的是:OnTouch这个事件处理函数的参数列表必须和定义事件委托(比如EventHandler(byval sender as object, byval e as EventArg))的参数列表一致。 --------------------编程问答-------------------- 愁人.
raiseevent 不就是触发事件的嘛. --------------------编程问答-------------------- 没明白,跟写一个Button的Click事件有什么区别 --------------------编程问答-------------------- 已经知道答案了。。。 --------------------编程问答-------------------- addhandler me.自定义控件.Touch, addressof OnTouch --------------------编程问答--------------------
Public Class Form1
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim testcontrol As New MyControl
AddHandler testcontrol.Touch, AddressOf OnTouch
Me.Controls.Add(testcontrol)
End Sub
Private Sub OnTouch()
MsgBox("自定义控件中的事件Touch已触发!")
End Sub
End Class
Public Class MyControl
Inherits UserControl
Public Event Touch()
Public Sub New()
InitializeComponent()
Me.BorderStyle = Windows.Forms.BorderStyle.FixedSingle
End Sub
'假设该事件在MouseEnter中触发
Private Sub MyControl_MouseEnter(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.MouseEnter
RaiseEvent Touch()
End Sub
End Class
补充:.NET技术 , VB.NET