Thanks for your reply MAHEY. Yes, I tried both and the behavior was the same.

As long as I can see, the maskedtextbox culture only affects the character shown as a decimal separator. With es-Es the separator is ',' instead of '.' with InvariantCulture.

The problem arise from validation of the control, where I have this piece of code:

Code:
            if (control.DataBindings.Count > 0)
                control.DataBindings[0].ReadValue();
Before that, the value showed in the textbox is the value the user put on the box, for example "001.000", after the binding, the value shown changes to "100.000" despite of that the value of the internal variable bound with the control still have the same value "001.000". The showed value always change in the same way, the value is recalculated as if the first 0's doesn't exist ("000.100" --> "100.000", "001.010" --> "101.000"...)