焦点更改时TextBox格式丢失

Joh*_*ohn 5 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;
}
Run Code Online (Sandbox Code Playgroud)

然后我这样做

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

hun*_*ind 4

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