防止MaskedTextBox中的2个连续逗号

时间:2014-03-26 16:14:14

标签: c# regex winforms textbox

private void maskedTextBox1_KeyPress(object sender, KeyPressEventArgs e)
{
    if (!char.IsControl(e.KeyChar)
     && !char.IsDigit(e.KeyChar)
     && e.KeyChar != ',')
    {
        e.Handled = true;
    }
}

我有一个蒙面文本框。我只让用户输入数值和","逗号。

如果用户连续输入2个逗号,例如,,,我想删除最后一个逗号。

用户只能输入1个逗号。

例如:

TextBox值为100,00,如果用户输入此值100,00,,00我想将其更改为100,00,00

如果在KeyPress事件中连续输入2个逗号,如何删除第二个逗号?

2 个答案:

答案 0 :(得分:1)

试试这个:

int sequenceCount = 0;
private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
{
    if (e.KeyChar == ',')
        sequenceCount++;
    else
        sequenceCount = 0;

    if ((!char.IsControl(e.KeyChar)
    && !char.IsDigit(e.KeyChar)
    && e.KeyChar != ',') ||  sequenceCount>1)
    {
        e.Handled = true;
    }
}

答案 1 :(得分:1)

private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
{
    // you might also want to check if the textBox1 is empty or whatever else. 
    if (e.KeyChar == ',' && textBox1.Text.EndsWith(",")) 
    {
        e.Handled = true;
    }
}