Microsoft recommends that event handlers return void. Event handlers are designed to execute events, not to return values. Since events can be raised from multiple code locations and code branches, the return value will always be from the last event call, which eliminates any benefits from having a return value.
' VB
Public Delegate Sub MouseEventHandler(sender As Object, e As EventArgs)
// C#
public delegate void MouseEventHandler(object sender, EventArgs e);