Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- 'Related to question at:
- 'http://groups.google.com/group/dotnetdevelopment/browse_thread/thread/5636b78c34487de4
- 'This is all about understanding Events and Delegates.
- 'To illustrate the concept, I created a sample class, WiaClass:
- '---
- Public Class WiaClass
- 'Let VB generate the Delegates automatically.
- Public Event OnDeviceDisconnected(ByVal sender As Object, ByVal e As EventArgs)
- Public Event OnTransferComplete(ByVal sender As Object, ByVal e As EventArgs)
- Public Sub TransferAllFunds()
- RaiseEvent OnTransferComplete(Nothing, Nothing)
- Disconnect()
- End Sub
- Private Sub Disconnect()
- RaiseEvent OnDeviceDisconnected(Nothing, Nothing)
- End Sub
- End Class
- '---
- 'Calling code subscribes to this as follows:
- '---
- Public Class MyWindowsForm
- Private Sub CreateManager()
- Dim wiaMgr As New WiaClass()
- AddHandler wiaMgr.OnDeviceDisconnected, AddressOf OnDeviceDisconnectedHandler
- AddHandler wiaMgr.OnTransferComplete, AddressOf OnTransferCompleteHandler
- 'Call the method that raises the events.
- wiaMgr.TransferAllFunds()
- End Sub
- Private Sub OnDeviceDisconnectedHandler(ByVal sender As Object, ByVal e As EventArgs)
- MessageBox.Show("Device disconnected!!")
- End Sub
- Private Sub OnTransferCompleteHandler(ByVal sender As Object, ByVal e As EventArgs)
- MessageBox.Show("Transfer Completed!!")
- End Sub
- End Class
- '---
- 'When more handlers are needed for the same Event type, we can declare a Delegate type as follows:
- '---
- Public Class WiaClass
- Public Delegate Sub _IWiaEvents_OnDeviceDisconnectedEventHandler(ByVal sender As Object, ByVal e As EventArgs)
- Public Delegate Sub _IWiaEvents_OnTransferCompleteEventHandler(ByVal sender As Object, ByVal e As EventArgs)
- Public Event OnDeviceDisconnected As _IWiaEvents_OnDeviceDisconnectedEventHandler
- Public Event OnTransferComplete As _IWiaEvents_OnTransferCompleteEventHandler
- Public Sub TransferAllFunds()
- RaiseEvent OnTransferComplete(Nothing, Nothing)
- Disconnect()
- End Sub
- Private Sub Disconnect()
- RaiseEvent OnDeviceDisconnected(Nothing, Nothing)
- End Sub
- End Class
- '---
- 'Calling code can access it as before or in the following way (which is similar to the code you require converted to VB) :
- '---
- Private Sub CreateManager()
- Dim wiaMgr As New WiaClass()
- AddHandler wiaMgr.OnDeviceDisconnected, New WiaClass._IWiaEvents_OnDeviceDisconnectedEventHandler(AddressOf wia_OnDeviceDisconnectedHandler)
- AddHandler wiaMgr.OnTransferComplete, New WiaClass._IWiaEvents_OnTransferCompleteEventHandler(AddressOf wia_OnTransferCompleteHandler)
- 'Call the method that raises the events.
- wiaMgr.TransferAllFunds()
- End Sub
- '---
Advertisement
Add Comment
Please, Sign In to add comment