13 Mayıs 2009 Çarşamba

TextBox'a Para Değeri Girme ve Bölgesel Dil Ayarları

Eğer NumericEditBox veya MaskedTextBox gibi para miktarı girilen textbox'lar kullanıyorsanız, bölgesel dil ayarlarıyla ilgili sorun yaşayabilirsiniz. Çünkü her dil ayarına göre farklı noktalama işaretleri kullanılıyor.

Bu durumda programın kullanıldığı her bilgisayarda bölgesel dil ayarlarının değiştirilmesi yerine, tek satırlık kod yazarak, o anlık bölgesel dil ayarının öyle algılanmasını sağlayabilirsiniz. İşte bunun için kullanacağınız kod:

Thread.CurrentThread.CurrentCulture = new CultureInfo("tr-TR");

Güncelleme(23.12.2009):
Bölgesel seçeneklerin özelleştirilebildiğini öğrendim. Yani ayarı Türkçe olarak versek de ondalık sayılarda kullanılan ayraçlar (nokta ve virgül gibi) özelleştirilebiliyormuş. Bu da yukarıda yaptığımız işlemi geçersiz kılıyor. Bunun için en iyi çözüm bu ayraçları da en başta belirtmek (tabi işinize yarar şekilde). Böylece kullanıcı kendi ayarlarında ne yapmış olursa olsun sizi ilgilendirmemiş oluyor.

Thread.CurrentThread.CurrentCulture.NumberFormat.NumberDecimalSeparator = ",";
Thread.CurrentThread.CurrentCulture.NumberFormat.NumberGroupSeparator = ".";