/// <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); } }
/// <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); }
/// <summary> /// Create a tab scheme comparer that compares using the given scheme. /// </summary> /// <param name="scheme"></param> public TabSchemeComparer( TabScheme scheme ) { comparisonScheme = scheme; }
/// <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; } }
/// <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; }
/// <summary> /// Create a tab scheme comparer that compares using the given scheme. /// </summary> /// <param name="scheme"></param> public TabSchemeComparer(TabScheme scheme) { comparisonScheme = scheme; }
/// <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; }
public MTabScheme(TabScheme scheme) { comparisonScheme = scheme; }