读书人

十个人有九个人不会的有关问题

发布时间: 2012-01-28 22:06:13 作者: rapoo

十个人有九个人不会的问题
自定义了一个控件,里面有个事件
Public Class uctlCustom
Inherits System.Windows.Forms.UserControl
Public Event EventCustom(ByVal sender As Object, ByVal e As EventArg)
...
End Class

把它加到一个Panel里
Dim WithEvents uctl As uctlCustom
Panel.Controls.Add(uctl)
...
Private Sub uctl_EventCustom(ByVal sender As Object, ByVal e As EventArg) Handles uctl.EventCustom

End Sub

OK这样捕捉自定义控件的事件没问题。

但是现在要动态加一打自定义控件到Panel里
For i As Integer = 0 To 0 11
uctl = New uctlCustom
uctl.Dock = Windows.Forms.DockStyle.Top
Panel.Controls.Add(uctl)
Next
现在我要怎么写才能捕捉到每一个控件的EventCustom?

[解决办法]
上面写错了,是这样的了.
AddHandler Me.uctl.EventCustom, New EventCustom(AddressOf Me.uctl_EventCustom)

[解决办法]
用AddHandler不就完了!!!

Sub TestEvents()
Dim Obj As New Class1
' Associate an event handler with an event.
AddHandler Obj.Ev_Event, AddressOf EventHandler
' Call the method to raise the event.
Obj.CauseSomeEvent()
' Stop handling events.
RemoveHandler Obj.Ev_Event, AddressOf EventHandler
' This event will not be handled.
Obj.CauseSomeEvent()
End Sub

Sub EventHandler()
' Handle the event.
MsgBox( "EventHandler caught event. ")
End Sub

Public Class Class1
' Declare an event.
Public Event Ev_Event()
Sub CauseSomeEvent()
' Raise an event.
RaiseEvent Ev_Event()
End Sub
End Class

读书人网 >.NET Framework

热点推荐