private bool PlaceCharCore( MaskedTextProvider provider, char ch, int startPosition, int length, bool overwrite, out int caretPosition )
{
caretPosition = startPosition;
if( startPosition < m_maskedTextProvider.Length )
{
MaskedTextResultHint notUsed;
if( length > 0 )
{
int endPosition = ( startPosition + length ) - 1;
return provider.Replace( ch, startPosition, endPosition, out caretPosition, out notUsed );
}
if( overwrite )
return provider.Replace( ch, startPosition, out caretPosition, out notUsed );
return provider.InsertAt( ch, startPosition, out caretPosition, out notUsed );
}
return false;
}