我有一个带有数据绑定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);
}
答案 0 :(得分:4)
您是否将数据绑定到文本框?如果是,则将数据转换为格式化字符串并绑定到字符串数据类型而不是数字。或者使用蒙面文本框。