public void TopLevelForm_Load(object sender, EventArgs e)
            {
                Form f = (Form) sender;
                SPTabOrderManager tom = new SPTabOrderManager(f);

                //// Add an override for everything with a tab scheme set EXCEPT for the form, which
                //// serves as the root of the whole process.
                SPTabOrderManager.TabScheme formScheme = SPTabOrderManager.TabScheme.None;
                IDictionaryEnumerator extendeeEnumerator = extendees.GetEnumerator();
                while (extendeeEnumerator.MoveNext())
                {
                    Control c = (Control) extendeeEnumerator.Key;
                    SPTabOrderManager.TabScheme scheme = (SPTabOrderManager.TabScheme) extendeeEnumerator.Value;

                    if (c == f)
                    {
                        formScheme = scheme;
                    }
                    else
                    {
                        tom.SetSchemeForControl(c, scheme);
                    }
                }

                tom.SetTabOrder(formScheme);
            }
            /// <summary>
            /// Set the tab scheme to use on a given control
            /// </summary>
            /// <param name="c"></param>
            public void SetTabScheme(Control c, SPTabOrderManager.TabScheme val)
            {
                if (val != SPTabOrderManager.TabScheme.None)
                {
                    extendees[c] = val;

                    if (topLevelForm == null)
                    {
                        if (c.TopLevelControl != null)
                        {
                            //' We're in luck.
                            //' This is the form, or this control knows about it, so take the opportunity to grab it and wire up to its Load event.
                            topLevelForm = (Form) c.TopLevelControl;
                            HookFormLoad();
                        }
                        else
                        {
                            //' Set up to wait around until this control or one of its ancestors is added to the form's control hierarchy.
                            HookParentChangedEvents(c);
                        }
                    }
                }
                else if (extendees.Contains(c))
                {
                    extendees.Remove(c);

                    //' If we no longer have any extendees, we don't need to be wired up to the form load event.
                    if (extendees.Count == 0)
                    {
                        UnhookFormLoad();
                    }
                }
            }