焦点更改时TextBox格式丢失

时间:2011-07-13 14:27:03

标签: c# winforms

我有一个带有数据绑定textBox的Windows窗体,它显示如下格式的电话号码:(800)555-5555。数据以十进制形式存储,然后以正确的格式显示。问题是,当我点击textBox然后点击其他东西时,它从(800)555-5555变回8005555555.格式化丢失了。我尝试在textBox leave事件上再次重新格式化数字,但这不起作用。可能导致这种情况的原因是什么?

vs 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 个答案:

答案 0 :(得分:4)

您是否将数据绑定到文本框?如果是,则将数据转换为格式化字符串并绑定到字符串数据类型而不是数字。或者使用蒙面文本框。