Для начала немного предыстории, почему появилась данная небольшая статья. Использовал FormatString для чисел и у меня возникла потребность изменить стандартный символ десятичного ( целой/дробной части ) разделителя числа для русского языка, но сделать это надо было из кода, а не в системных настройках. У меня в винде этим разделителем был символ “,”(запятая), а нужна была точка.
Так вот, давайте взглянем, как это можно сделать для библиотеки компонентов DevExpress:
-
-
private void TestForm_Load(object sender, System.EventArgs e)
-
{
-
CultureInfo myCulture = new CultureInfo(«ru-RU», true);
-
culture.NumberFormat.NumberDecimalSeparator = «.»;
-
System.Threading.Thread.CurrentThread.CurrentCulture = myCulture;
-
DevExpress.Utils.FormatInfo.AlwaysUseThreadFormat = true;
-
}
-
Создаете новый экземпляр CultureInfo, устанавливаем свойство NumberDecimalSeparator в необходимое значение(в моем случае это точка). Затем задаем культуру (CultureInfo) для текущего потока. И наконец необходимо установить свойство AlwaysUseThreadFormat класса FormatInfo в true.
Естественно, аналогичным способом можно поменять и другие символы, например, символы денежных единиц и т.д.
Надеюсь данная информация осталась полезной для вас, хотя думаю, существуют и иные способы решения подобной проблемы, возможно более изящный ( хотя, лично я, так и не нашел адекватную замену). На этом всё. Удачи.