Денежный символ (не $) в значениях поля DataGridView - PullRequest
1 голос
/ 12 сентября 2010

Я создаю приложение для некоммерческой организации в Гватемале.Все в системе находится в Кетсалесе, который обозначается как Q (т.е. Q100.00) - 100 Кетсалес.

Мне нужно иметь возможность изменять денежные значения в любом столбце DataGridView, но я не смог найти простой способ сделать это с помощью форматирования, как вы можете с помощью знака доллара.Я не хочу использовать настройки региона компьютера, потому что некоторые люди, использующие систему, используют компьютеры из США.

Не уверен, что это важно, но значения исходят из базы данных сервера sql типа «деньги».поле.

Ответы [ 2 ]

4 голосов
/ 12 сентября 2010

При форматировании строки вы можете указать, какую культуру вы хотите использовать:

decimal cost = 1500m;
string s = cost.ToString("C", CultureInfo.GetCultureInfo("es-GT"));

Результат

Q1,500.00
3 голосов
/ 12 сентября 2010

Если вы не хотите полагаться на региональные настройки, вы можете принудительно запустить приложение с использованием культуры Гватемалы независимо от региональных настроек.

CultureInfo culture = new CultureInfo("es-GT");
decimal amount = 123.43M;

// Set the culture for the thread
System.Threading.Thread.CurrentThread.CurrentCulture = culture;

// Uses the thread culture for formatting
MessageBox.Show(amount.ToString("c"));

// Alternatively if you do not want to set the thread culture
// you can explicitly format using the passed culture
MessageBox.Show(amount.ToString("c", culture));
...