protected override void OnTextChanged( EventArgs e )
{
base.OnTextChanged( e );
if ( !Blank )
{
int value = _valueFormatter.Value( Text );
if ( value > RangeHigh )
{
base.Text = _valueFormatter.ValueText( RangeHigh, CharacterCasing );
SelectionStart = 0;
}
else if ( ( TextLength == MaxLength ) && ( value < RangeLow ) )
{
base.Text = _valueFormatter.ValueText( RangeLow, CharacterCasing );
SelectionStart = 0;
}
else
{
int originalLength = TextLength;
int newSelectionStart = SelectionStart;
base.Text = GetCasedText();
if ( TextLength < originalLength )
{
newSelectionStart -= ( originalLength - TextLength );
SelectionStart = Math.Max( 0, newSelectionStart );
}
}
}
SendFieldChangedEvent();
if ( Text.Length == MaxLength && Focused && SelectionStart == TextLength )
{
SendCedeFocusEvent( Direction.Forward, Selection.All );
}
}