'.... if you are into threads 
Funny enough: i do work for a trading company for fasteners….. imagine that….
At one time 'threading' was my Bread & Butter, I was the commercial Export manager at Herbert Small Tools having previously served my time as a tool-maker at Matrix - two companies very well known in Coventry - and later at a smaller company whose raison d'être was 'Fasteners' - it's a small world

As for your „characters where only numbers allowed“
Look at my codesample. There is code for the KeyPress-Event allowing only digits, backspace, delete and Enter. Adding a dot is simple
I have looked at your code and yes, had noticed a 'Key-Press' event - when I realized that my need for a drop-down list was secondary and I just needed a 'number' I solved all the issues using existing basic code.
Because I want to provide 'real world' simplicity which essentially means that I don't want to restrict the user by demanding that they always enter decimal parameters I've developed a 'Fraction' entry method which has to have space & division as well as numbers & decimal point. In addition - having an eye for good design - I also decided to use a 'centre dot' to display decimal numbers so that added yet another character to the list.
Therefore the Diameter (or any imperial parameter) can be specified as (say) 1.5625, 1·5625 or 1 9/16 -- 3/4, 0.75 or ·75 etc. with all errors trapped. It would be a simple matter for an end user to accidentally hit either '.' or even ',' instead of '/' so these events also have to be trapped.
I had looked at components which offered a 'Numbers Only' but they do just that -- not even a decimal point or negative sign -- which I find less than useful.
Under DOS I developed a data entry system which looked at every key-press but I've yet to do the same under Windows - it seems somewhat more difficult
