Точка вместо запятой в DataGridView с типом данных Decimal в ячейках

153
05 октября 2019, 15:40

При работе в DataGridView данные с типом Decimal отображаются с запятой, можно ли настроить проект или DataGridView, так что бы он работал с точками?

P.S. Не меняя при этом национальные настройки операционной системы.

Answer 1

Есть несколько вариантов.

Во-первых, можно задать новую культуру для текущего потока. Делается это так:

Thread.CurrentThread.CurrentCulture = new CultureInfo("en-US");

Здесь выбрана культура, у которой используется точка в качестве десятичного разделителя. При этом, естественно, будет использованы настройки этой культуры для всех типов данных: дата-время, валюта, проценты и прочее.

Возможно, вас устроит универсальная инвариантная культура:

Thread.CurrentThread.CurrentCulture = CultureInfo.InvariantCulture;

Если же нужна конкретная культура, но лишь с одной изменённой настройкой, то:

var myCulture = new CultureInfo("ru-RU");
myCulture.NumberFormat.NumberDecimalSeparator = ".";
Thread.CurrentThread.CurrentCulture = myCulture;

Во-вторых, можно задать настройки формата или культуру только для одного компонента. См. FormatProvider.

dataGridView.Columns[2].DefaultCellStyle.FormatProvider = myCulture;

В примере меняются настройки определённой колонки в гриде. Культуру, естественно, можно выбрать любую, как в примерах выше.

Также обратите внимание на свойство Format. Оно позволяет, например, гибко задавать настройки вывода даты-времени: скажем, только месяц показать из типа DateTime. Для decimal оно особо неприменимо.

READ ALSO
Как получить текст без тегов из Action в TestCase TFS Visual Studio?

Как получить текст без тегов из Action в TestCase TFS Visual Studio?

При извлечении имени Action из TestCase я получаю это:

135
Построение график в WPF Toolkit

Построение график в WPF Toolkit

Строю график, отражающий динамику прохождения тестов пользователемНа оси Y отражается коэффициент(результат), на Х - дата выполнения

112
web.config MVC запись

web.config MVC запись

Я хочу перезаписать данные в файл webconfig из секции

103