Свойство VB.net ComboBox от Formattring не работает - PullRequest
2 голосов
/ 19 января 2012

У меня есть форма, созданная в VB.net. Он используется для получения некоторой информации от пользователя. Форма не привязана ни к какому источнику данных.

Поле со списком в этой форме используется для ввода стоимости. Я хочу, чтобы введенное пользователем значение отображалось в формате валюты. Я использовал диалоговое окно «Формат строки», которое открывается с помощью кнопки «эллипсы» в свойстве «ФорматСтроки» поля со списком и выбранной валюты. Это помещает C2 в свойство FormatString.

Когда я запускаю свое приложение, этот формат не применяется к значению, введенному в поле со списком во время ввода числа или когда я покидаю поле со списком.

Чего мне не хватает?

Ответы [ 2 ]

0 голосов
/ 20 января 2012

Свойство FormatString работает только для элементов управления с привязкой к данным.Тем не менее входные данные в элементе управления по-прежнему можно отформатировать с помощью метода ToString() для события Change или Leave.

В приведенном ниже примере кода текст в поле со списком будет отформатирован в валюте по умолчанию.как только фокус покидает контроль.Обработка ошибок может быть выполнена в предложении else:

private void comboBox1_Leave(object sender, EventArgs e)
{
    string s = comboBox1.Text;
    decimal result;
    if (Decimal.TryParse(s, out result))
    {
        comboBox1.Text = result.ToString("C2");
    }
}
0 голосов
/ 19 января 2012

Установите для свойства FormattingEnabled значение True.

...