Beispiel #1
0
        public void SetTabControlComparer(Control control, TabControlComparer tabControlComparer)
        {
            control.ThrowIfNull("control");
            tabControlComparer.ThrowIfNull("tabControlComparer");

            _controlOverrides[control] = tabControlComparer;
        }
Beispiel #2
0
        private int SetTabOrder(TabControlComparer tabControlComparer, int firstTabIndex, Control container)
        {
            try
            {
                if (container.Controls == null || container.Controls.Count == 0) return firstTabIndex;

                int currentTabIndex = firstTabIndex;
                var controls = new List<Control>();
                controls.AddRange(container.Controls.OfType<Control>());
                controls.Sort(tabControlComparer);

                foreach(Control control in controls)
                {
                    logger.LogDebug("TabOrderManager:  Changing tab index for " + control.Name);

                    control.TabIndex = currentTabIndex++;
                    if(control.Controls.Count > 0)
                    {
                        // Control has children -- recurse.
                        var comparer = tabControlComparer;
                        if (_controlOverrides.ContainsKey(control))
                        {
                            comparer = _controlOverrides[control];
                        }

                        currentTabIndex = SetTabOrder(comparer, currentTabIndex, control);
                    }
                }

                return currentTabIndex;
            }
            catch(Exception e)
            {
                logger.LogError("Exception in TabOrderManager.SetTabOrder");
                logger.LogException(e);
                return 0;
            }
        }
Beispiel #3
0
 /// <summary>
 /// Recursively set the tab order on this container and all of its children.
 /// </summary>
 /// <param name="scheme">The tab ordering strategy to apply.</param>
 public void SetTabOrder(TabControlComparer tabControlComparer)
 {
     SetTabOrder(tabControlComparer, 0, _mainContainer);
 }
Beispiel #4
0
        public void SetTabControlComparer(TabControlComparer tabControlComparer)
        {
            tabControlComparer.ThrowIfNull("tabControlComparer");

            _tabControlComparer = tabControlComparer;
        }