我有一个文本框,我想实时格式化:###-##-####
用户输入。
我有以下代码:
private bool bFlag;
private void tbSSN_TextChanged(object sender, EventArgs e)
{
string str = tbSSN.Text;
if (!bFlag)
{
if (str.Length == 3 || str.Length == 6)
{
tbSSN.Text += "-";
bFlag = true;
tbSSN.SelectionStart = tbSSN.Text.Length;
}
else if (str.Length > 11)
{
tbSSN.Text = tbSSN.Text.Remove(tbSSN.Text.Length - 1);
tbSSN.SelectionStart = tbSSN.Text.Length;
}
}
else
{
bFlag = false;
}
}
唯一的问题是,当我点击退格键并尝试再次输入数字时,我可以输入以下格式:#####--####
或##-#####-##
我知道我必须添加KeyPress
事件以确保上述问题得到解决,但我不确定如何添加它。
我如何编码KeyPress
事件?
这是一个WinForm应用程序。
答案 0 :(得分:3)
使用MaskedTextBox代替普通TextBox,并为TextBox定义Mask。
yourMaskedTextBox.Mask = "000-00-0000";