Please could you mention the behavior that you were expecting when entering text 42 into the control. The control will try to coerce the value to the closest value based on the interval without going outside the minimum and maximum value specified by the Range property. If the CoercionInterval is at 20 million when 42 is entered, then according to the behavior mentioned above, the control will set the value to 10 million assuming the range is between 0 (or negative infinity, which is the default value) to some large number (or positive infinity, which is the default value).
The control tries to determine if the value entered is on the coersion interval itself. If so, it does not do anything. Otherwise, it determines if the value is less than or greater than the current value. In either case, it finds the value that is closest to the entered by value by either adding or subtracting the coercion interval from the current value. So, in this case, if the value is 30 million and the CoercionInterval is 20 million, then 42 is less than 30 million, so it subtracts the CoercionInterval from the value to get 10 million. It continues to subtract 20 million from until the value becomes less than the entered value. Accordingly, it then subtracts 20 million from 10 million again to get -10 million. Now, as 10 million is closer to the number 42 than -10 million, it sets the value to 10 million.
I have made assumptions that about the value of the Range and the CoercionInterval which may or may not be correct. If you see a discrepancy from the behavior described above, then please let us.know.
Thanks.