从掩码中删除多余的 _

Remove extra _ from mask

两个输入都有效:

(00)0000-0000
(00)10000-0000

所以我正在使用这个面具:

(00)90000-0000

因为 (00) 之后的数字之一是可选的,它可以有 8 位或 9 位。但是如果输入有 8 位数字,MaskTextBox 最后会显示一个额外的 _,就像这样 (00)0000-0000_ 但由于这是可选数字,我想将其删除。如果它有 8 位或 9 位,则必须分别显示为 (00)0000-0000(00)00000-0000。我希望一切都清楚

我这里也有同样的问题...我是怎么解决的?使用 2 个文本框并处理用户 "backspace" 从第二个到第一个的情况...

尝试使用 TextChanged 事件根据 MaskCompleted 属性:

更改 PropmtChar 属性
private void MaskedTextBox1_TextChanged(object sender, EventArgs e)
{
    MaskedTextBox1.PromptChar = (MaskedTextBox1.MaskCompleted) ? ' ' : '_' ;
}