Форматирование TextBox теряется при изменении фокуса - PullRequest
5 голосов
/ 13 июля 2011

У меня есть форма Windows с привязанным к данным textBox, в котором отображается номер телефона, полученный следующим образом: (800) 555-5555. Данные хранятся в десятичном формате, а затем я отображаю их в правильном формате. Проблема, однако, заключается в том, что когда я щелкаю текстовое поле, а затем нажимаю на что-то еще, оно изменяется с (800) 555-5555 на 8005555555. Форматирование теряется. Я попытался переформатировать цифры снова в событии textBox, но это не работает. Что может быть причиной этого?

против 2010 c #

чтобы сначала отформатировать, я делаю это

private string FormatCustPhoneBox(string a)
{
            string phone = a;

            for (int j = 0; j < phone.Length; j++)
            {
                if (!Char.IsDigit(phone, j))
                {
                    phone = phone.Remove(j, 1);  //Remove any non numeric chars.
                    j--;
                }
            }
            return phone;
}

тогда я делаю это

    private void FormatPhoneNum()
    {
        decimal iPhone = decimal.Parse(CustomerPhone1Box.Text);
        CustomerPhone1Box.Text = string.Format("{0:(###) ###-####}", iPhone);
    }

1 Ответ

4 голосов
/ 13 июля 2011

Связываете ли вы данные с текстовым полем?Если да, преобразуйте данные в форматированную строку и привяжите к строковому типу данных, а не к числу.Или используйте замаскированное текстовое поле.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...