У меня была похожая проблема с обработкой события Click во всех дочерних элементах управления. Код VB.NET, но он должен быть легко настраиваемым.
Public Shared Sub RelayEvents(ByVal usrcon As Windows.Forms.Control, ByVal del As System.EventHandler, Optional ByVal includeChildren As Boolean = True)
For Each con As Windows.Forms.Control In usrcon.Controls
AddHandler con.Click, del
If includeChildren Then
RelayEvents(con, del)
End If
Next
End Sub
Всякий раз, когда необходим требуемый каскад, можно добавить следующую строку в конструктор класса.
CustomMethods.RelayEvents(Me, New EventHandler(AddressOf Me_Click))