Default Text in a Form's Control

Elaborating on top of Base Captialize First Letter In Field
We write code to capitalize each new word in a name.
So user enters (complete) name into control “name” and routine capitalizes it:
oName.Text = < capitalized name >
BUT if to the user it does not seems good the format inserted, she/he must be able to edit it. And of course process cannot repeat itself (no another capitalization!).
What event(s) should be assigned to the routine?
Experimented here with Before update but of course process repeats itself after edition.
 
Thanks in advance.