Thanks Daniel
Here is the VB.Net flavour of the code for anyone that is interested.
Public Overridable Property ActiveControl() As Control
Get
Return GetFocusedControl(Me)
End Get
Set(ByVal Value As Control)
If (Not (Value.Focused)) Then
Value.Focus()
End If
End Set
End Property
Private Function GetFocusedControl(ByRef parent As Control) As Control
If (parent.Focused) Then
Return parent
End If
For Each ctrl As Control In parent.Controls
Dim temp As Control = GetFocusedControl(ctrl)
If (Not (temp Is Nothing)) Then
Return temp
End If
Next
Return Nothing
End Function