焦点改变时文本框格式丢失

本文关键字:格式 文本 改变 焦点 | 更新日期: 2023-09-27 18:01:53

我有一个带有数据绑定文本框的Windows窗体,它显示的电话号码格式如下:(800)555-5555。数据以十进制形式存储,然后以正确的格式显示。问题虽然是当我点击进入文本框,然后点击其他的东西,它从(800)555-5555变回8005555555。地层丢失。我尝试在文本框离开事件上再次重新格式化数字,但这不起作用。是什么原因造成的呢?

vs 2010 c#

to Format

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);
    }

焦点改变时文本框格式丢失

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