2013-08-05 27 views
0

我正在做一些转换编码,使用找到的.net转换库@http://code.google.com/p/dot-net-transitions/。我正在尝试添加一个事件来触发已完成的转换。在我的子,我有以下语句:为什么我的活动没有开火?

Private Sub btnLogin_Click_1(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnLogin.Click 

If md5Password = rtnPassHash Then 

       AddHandler Me.TransitionCompletedEvent, AddressOf theHandlerFunction 

       Dim tr_empID = New Transition(New TransitionType_Linear(500)) 
       tr_empid.add(txtEmployeeID, "BackColor", Color.LightGreen) 

       Dim tr_passw = New Transition(New TransitionType_Linear(500)) 
       tr_passw.add(txtPassword, "BackColor", Color.LightGreen) 

       tr_empID.run() 
       tr_passw.run() 
       AddHandler Me.TransitionCompletedEvent, AddressOf theHandlerFunction 

       Dim tr_empID = New Transition(New TransitionType_Linear(500)) 
       tr_empid.add(txtEmployeeID, "BackColor", Color.LightGreen) 

       Dim tr_passw = New Transition(New TransitionType_Linear(500)) 
       tr_passw.add(txtPassword, "BackColor", Color.LightGreen) 

       tr_empID.run() 
       tr_passw.run() 

end if 

end sub 

该子我之外:

Public Event TransitionCompletedEvent As EventHandler(Of Transition.Args) 

Private Sub theHandlerFunction(ByVal sender As Object, ByVal args As Transition.Args) Handles Me.TransitionCompletedEvent 
    MsgBox("Event Fired") 

End Sub 

但是,事件没有在过渡完成后射击。为什么会这样?

+0

的代码是什么'在AddHandler'线?它是在事件处理程序还是其他东西?你可以发布第一个代码清单的整个方法吗? –

+0

我加了一点以上,它是在一个使用按钮点击。处理程序是在我的md5匹配条件之后添加的,理论上应该在转换完成后触发。 –

+0

'Addhandler'连接事件不会触发事件。 – OneFineDay

回答

1

基本设计:

Public Class Transition 
    Public Event TransitionCompleted(args As Transition.Args) 
    Public Sub SomeSub() 
    RaiseEvent TransitionCompleted(New Transition.Args With {set some properties}) 
    End Sub 
    ... 
End Class 

Public Class Form1 
Private transition1 As New Transition 
Private Sub Login_Click(...) ... 
    ... 
    Addhandler transition1.TransitionCompleted, AddressOf TransitionCompleted 
End Sub 

Private Sub TransitionCompleted(args As Transition.Args) ' no handles clause 
    MessageBox.Show("event fired") 
End Sub 
End Class 
+0

这帮了我很大的忙,谢谢! –