If I set the ultranumericseditor to have a mask like ###.### and an initial value of 9.0. Then when the user tries to type into the field, the caret is positioned before the 9. So if the user tries to type 123.456 the 12 goes before the 9, then it goes past the decimals and types the 345 and you get 129.345 instead of 123.456.
This is not very easy or intuitive for the user.
Is there some way to make editing easier?
It sounds like you want the control to start off with all of the text selected so it will overwrite the existing value. Try handling the Enter event of the control and call the SelectAll method to select all of the text initially.
That's actually what I ended up doing, but it not perfect. it works for most cases, but the behavor of editing a number is still strange.
What I did in the pastwas to start the cursor at the end of a number field and in insert mode. In this mode chars scroll left and the caret stays in the same spot.. When they press the periiod you sihft the cursor to right after the decimal pooint and shift the character left the same. and you switch to overtpe mode which does not scroll charactesr, but instead moves the carret forward.
so to type 123.456 the user could type just those digits with no decimal point. i.e. to type any number where they want to include all the decimal digits, they just type every digit, no decimal needed (but harmless). To typoe a number with less than the total number of decimals, they do need to type the decimal point. This shift the integer digits in to the right sot and puts them in place to overtype the decimal digits.
This is very efficient and very natural. The current interface is not
Just my opinion, but the select all does okay.
thanks
Hi,
Is there any work around for this? I am facing exactly the same problem.
Select All would not work for my case.
e.g. I have a "Weight" field on screen. It is set to 10.00 by default.
When user comes on the field and tries to modify it as say 222, it gets updated as 22.20.
Now to resolve this issue if i select all text when user comes on the field then it will work for this case. However, in another case it will not work.
e.g. user is editing a record with weight field is set to 22.22. He enters 23. The weight should get updated to 23.22. However it will get updated to 23.00 due to select all. Alternatively he will have to type it completely as 23.22.
Both ways its annoying. These users are trained data entry users and do a data entry of 60 fields in 30 seconds...
The complete screen is in Insert mode. Its intuitive to update the integer part unless the complete integer mask is filled or user has pressed ".".
Please let me know if there is some way to get this done.
It sounds like you want this one control to act as though it is in Overwrite mode, instead of insert mode. But there is no way to specify the input mode for a single control, it's a system setting and applies to all controls at once.
I think you will get pretty close to the desired behavior if you have the control select the integer portion of the text when the cursor enters the cell. Leave the rest unselected.