I'm not sure what happened with the ChangedHandler it should work fine I use it all the time. A delegate does not have to 'belong' to any other object thus it is good to declare it outside of any class or anything, but it will work the same either way, it just changes the namespace of it.
VB Code:
Public Delegate Sub ChangedHandler(ByVal sender As Object, ByVal e As EventArgs)
Public Class DelegateEventSample
Public Event Changed As ChangedHandler
Public Sub OnChanged(ByVal e As EventArgs)
RaiseEvent Changed(Me, e)
End Sub
End Class