I am using NumericUpDown control as input for a range between 10 and 22000. So I set the minimum to "10", the maximum to "22000" and the thousand separator as true. Because of these settings, I am experiencing a very annoying behavior. Let's say you would like to type "100", which is within the range. By the time you type "1", the **** NumericUpDown won't wait for you to type "00", instead it shows "10" (minimum value) and moves the cursor to the LEFT, so you have to click again on the right side to type "0" again. Very annoying.

Then let's say you're going to type "10050" and 100 is already there. You click and try to type "5"... It puts the thousand separator and again, moves the cursor to the LEFT, as result you now have "5,100". Extremely annoying.

So annoying that it's actually surprising! I am using VC++ Express 2008. How could I possibly solve this problem without a bunch of code and timers to work around??

Any input will be highly appreciated. Thank you!