At a customer’s site, an application needed to format and accept formatted input for currencies. They had already made several attempts at getting the .NET 2.0 WinForms MaskedTextBox to behave the way they wanted, without success.
A quick search reveals that they were not the only ones struggling with this issue. However, Irena Kennedy  had posted some sample code that would make the MaskedTextBox behave more appropriately. While the sample provides an excellent overview of how to handle currency values, two features were lacking:
- Support for the currency group separator (the , in the US English culture)
- Support for different cultures (important, considering the fact that the default MaskedTextBox allows you to specify a culture)
The download below  is a zip file containing a sample implementation for both of the above features. The code is based on Irena’s code. Feel free to download this sample and use it in your applications. However, I provide no warranty whatsoever that this CurrencyMaskedTextBox will suit your needs. If you make any modifications, please continue to include my name and Irena’s name.