System.ComponentModel.MaskedTextProvider.FindUnassignedEditPositionInRange C# (CSharp) Method

FindUnassignedEditPositionInRange() private method

private FindUnassignedEditPositionInRange ( int startPosition, int endPosition, bool direction ) : int
startPosition int
endPosition int
direction bool
return int
        public int FindUnassignedEditPositionInRange(int startPosition, int endPosition, bool direction)
        {
            int position;

            while (true)
            {
                position = FindEditPositionInRange(startPosition, endPosition, direction, editAny);

                if (position == invalidIndex)
                {
                    return invalidIndex;
                }

                CharDescriptor chDex = _stringDescriptor[position];

                if (!chDex.IsAssigned)
                {
                    return position;
                }

                if (direction == forward)
                {
                    startPosition++;
                }
                else
                {
                    endPosition--;
                }
            }
        }

Usage Example

Example #1
0
        private bool ShouldQueryAutoCompleteMask( MaskedTextProvider provider, char ch, int startPosition )
        {
            if( provider.IsEditPosition( startPosition ) )
              {
            int nextSeparatorIndex = provider.FindNonEditPositionFrom( startPosition, true );

            if( nextSeparatorIndex != -1 )
            {
              if( provider[ nextSeparatorIndex ].Equals( ch ) )
              {
            int previousSeparatorIndex = provider.FindNonEditPositionFrom( startPosition, false );

            if( provider.FindUnassignedEditPositionInRange( previousSeparatorIndex, nextSeparatorIndex, true ) != -1 )
            {
              return true;
            }
              }
            }
              }

              return false;
        }