防止在一个MaskedTextBox中连续出现两个逗号

本文关键字:两个 连续 MaskedTextBox 一个 | 更新日期: 2023-09-27 17:54:07

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个逗号,如何删除第二个逗号?

防止在一个MaskedTextBox中连续出现两个逗号

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

Try This:

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