Esempio n. 1
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>
        /// <returns>The next tab index to be used.</returns>
        public int SetTabOrder(TabScheme scheme)
        {
            // Tab order isn't important enough to ever cause a crash, so replace any exceptions
            // with assertions.
            try
            {
                ArrayList controlArraySorted = new ArrayList();
                controlArraySorted.AddRange(container.Controls);
                controlArraySorted.Sort(new TabSchemeComparer(scheme));

                foreach (Control c in controlArraySorted)
                {
                    c.TabIndex = curTabIndex++;
                    if (c.Controls.Count > 0)
                    {
                        // Control has children -- recurse.
                        TabScheme childScheme = scheme;
                        if (schemeOverrides.Contains(c))
                        {
                            childScheme = (TabScheme)schemeOverrides[c];
                        }
                        curTabIndex = (new TabOrderManager(c, curTabIndex, schemeOverrides)).SetTabOrder(childScheme);
                    }
                }

                return(curTabIndex);
            }
            catch
            {
                return(0);
            }
        }
        public int SetTabOrder(TabScheme scheme)
        {
            try
            {
                ArrayList controlArraySorted = new ArrayList();
                controlArraySorted.AddRange(container.Controls);
                controlArraySorted.Sort(new TabSchemeComparer(scheme));

                foreach (Control c in controlArraySorted)
                {
                    Debug.WriteLine("Tab Index Settings:  Changing tab index for " + c.Name);


                    c.TabIndex = curTabIndex++;
                    if (c.Controls.Count > 0)
                    {
                        // Control has children -- recurse.
                        TabScheme childScheme = scheme;
                        curTabIndex = (new clsTabIndex(c, curTabIndex, schemeOverrides)).SetTabOrder(childScheme);
                    }
                }

                return(curTabIndex);
            }
            catch (Exception e)
            {
                Debug.Assert(false, "Exception in SetTabOrder:  " + e.Message);
                return(0);
            }
        }
Esempio n. 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>
        /// <returns>The next tab index to be used.</returns>
        public int SetTabOrder(TabScheme scheme)
        {
            // Tab order isn't important enough to ever cause a crash, so replace any exceptions
            // with assertions.
            try {
                ArrayList controlArraySorted = new ArrayList();
                controlArraySorted.AddRange(_container.Controls);
                controlArraySorted.Sort(new TabSchemeComparer(scheme));

                foreach (Control c in controlArraySorted)
                {
                    Debug.WriteLine("TabOrderManager:  Changing tab index for " + c.Name);

                    c.TabIndex = _curTabIndex++;
                    if (c.Controls.Count > 0)
                    {
                        // Control has children -- recurse.
                        TabScheme childScheme = scheme;
                        if (_schemeOverrides.Contains(c))
                        {
                            childScheme = (TabScheme)_schemeOverrides[c];
                        }
                        _curTabIndex = (new TabOrderManager(c, _curTabIndex, _schemeOverrides)).SetTabOrder(childScheme);
                    }
                }

                return(_curTabIndex);
            } catch (Exception e) {
                Debug.Assert(false, "Exception in TabOrderManager.SetTabOrder:  " + e.Message);
            }
            return(0);
        }
Esempio n. 4
0
 /// <summary>
 /// Create a tab scheme comparer that compares using the given scheme.
 /// </summary>
 /// <param name="scheme"></param>
 public TabSchemeComparer( TabScheme scheme )
 {
     comparisonScheme = scheme;
 }
Esempio n. 5
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>
        /// <returns>The next tab index to be used.</returns>
        public int SetTabOrder( TabScheme scheme )
        {
            // Tab order isn't important enough to ever cause a crash, so replace any exceptions
            // with assertions.
            try
            {
                ArrayList controlArraySorted = new ArrayList();
                controlArraySorted.AddRange( container.Controls );

            if (!(container is TabControl))
                   controlArraySorted.Sort( new TabSchemeComparer( scheme ) );

                foreach( Control c in controlArraySorted )
                {
                    c.TabIndex = curTabIndex++;
                    if( c.Controls.Count > 0 )
                    {
                        // Control has children -- recurse.
                        TabScheme childScheme = scheme;
                        if( schemeOverrides.Contains( c ) )
                        {
                            childScheme = (TabScheme) schemeOverrides[c];
                        }
                        curTabIndex = (new TabOrderManager( c, curTabIndex, schemeOverrides )).SetTabOrder( childScheme );
                    }
                }

                return curTabIndex;
            }
            catch( Exception e )
            {
                Debug.Assert( false, "Exception in TabOrderManager.SetTabOrder:  " + e.Message );
                return 0;
            }
        }
Esempio n. 6
0
 /// <summary>
 /// Explicitly set a tab order scheme for a given (presumably container) control.
 /// </summary>
 /// <param name="c">The control to set the scheme for.</param>
 /// <param name="scheme">The requested scheme.</param>
 public void SetSchemeForControl( Control c, TabScheme scheme )
 {
     schemeOverrides[c] = scheme;
 }
Esempio n. 7
0
 /// <summary>
 /// Create a tab scheme comparer that compares using the given scheme.
 /// </summary>
 /// <param name="scheme"></param>
 public TabSchemeComparer(TabScheme scheme)
 {
     comparisonScheme = scheme;
 }
Esempio n. 8
0
 /// <summary>
 /// Explicitly set a tab order scheme for a given (presumably container) control.
 /// </summary>
 /// <param name="c">The control to set the scheme for.</param>
 /// <param name="scheme">The requested scheme.</param>
 public void SetSchemeForControl(Control c, TabScheme scheme)
 {
     schemeOverrides[c] = scheme;
 }
Esempio n. 9
0
 public MTabScheme(TabScheme scheme)
 {
     comparisonScheme = scheme;
 }