This project is read-only.

Mask changed behavior

Jun 27, 2012 at 9:08 AM

I refered the WinForm MaskedTextBox. When mask changed,  MaskedTextBox will attempt to migrate that input into the new mask definition.

private void RefreshText(MaskedTextProvider newProvider, MaskedTextProvider oldProvider) {          

int position = 0;           

MaskedTextResultHint maskedTextResultHint = MaskedTextResultHint.NoEffect;           

bool flag = oldProvider.Mask == newProvider.Mask;           

int i = oldProvider.AssignedEditPositionCount;           

int num = 0;           

int num2 = 0;           

while (i > 0)            {               

num = oldProvider.FindAssignedEditPositionFrom(num, true);               

if (flag)                {                 num2 = num;                }               

else                {                   

num2 = newProvider.FindEditPositionFrom(num2, true);                   

if (num2 == MaskedTextProvider.InvalidIndex)                    {                        newProvider.Clear();                        position = newProvider.Length;                        maskedTextResultHint = MaskedTextResultHint.UnavailableEditPosition;                        break;                   

}             

}               

if (!newProvider.Replace(oldProvider[num], num2, out position, out maskedTextResultHint))                {                   

flag = false;                   

newProvider.Clear();                   

break;               

}               

num++;               

num2++;               

i--;           

}           

var flag2 = !MaskedTextProvider.GetOperationResultFromHint(maskedTextResultHint);            Text = newProvider.ToDisplayString();       

}