If you override the OnValidating method you can get a little closer. Check if the Text ends with the unit character in the OnValidating method, and if it does you trim it out. Now, if you tab out of the control it keeps the new value. Strange enough if you change the focus any other method (or just press enter), it doesn't accept the new value and reverts to the old value. I don't know why it works on tabbing out but not anyway else, that might have to do with the Validating event which I rarely use, perhaps someone has an idea to improve this?