如何格式化文本框以显示SSN作为用户类型

本文关键字:SSN 用户 类型 显示 格式化 文本 | 更新日期: 2023-09-27 18:08:53

我有一个文本框,我想实时格式化:###-##-####作为用户类型。

我有以下代码:

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事件?

如何格式化文本框以显示SSN作为用户类型

使用MaskedTextBox代替普通的TextBox,并为你的TextBox定义一个蒙版。

yourMaskedTextBox.Mask = "000-00-0000";