/// <summary>
 /// Gets all <code>IInputHandler</code> controls within <paramref name="control"/> ordered by thier TabIndex
 /// </summary>
 /// <param name="control">The control to search in</param>
 /// <returns>A list of controls</returns>
 private IEnumerable<Control> CalculateList(ContainerControl control)
 {
     foreach (var c in control.OrderBy(c => c.TabIndex))
     {
         if (c is IInputHandler)
             yield return c;
         if (c is ContainerControl)
             foreach (var cc in CalculateList(c as ContainerControl).Where(cc => cc is IInputHandler))
                 yield return cc;
     }
 }