我制作了代码,当总长度为== 11时格式化数字,它在texbox更改上运行,但只有当它有11个字符时才格式化,我想在运行时(实时)进行格式化,理解?这是可能的 ?看我的代码:
private void textBox3_TextChanged(object sender, EventArgs e)
{
Int64 cpf = Convert.ToInt64(textBox3.Text);
if (textBox3.TextLength == 11)
{
textBox3.Text = string.Format(@"{0:000\.000\.000-00}", Convert.ToInt64(cpf));
}
}
由于
答案 0 :(得分:1)
正如lazyberezovsky所述,使用蒙面文本框,但将PromptChar设置为您想要的任何内容。有点像:
//In your form_load
//Based on your code above, assuming textBox3 is a MaskedTextbox
textBox3.KeyUp += CheckEvent()
textBox3.Mask = "000000000000";
textBox3.PromptChar = 'x'; //set this to a space or whatever you want ' ' for blank!
//check AFTER every key press
private void CheckEvent(object Sender, KeyEventArgs e)
{
if(textBox3.Text.Count() < 12)
{
return;
}
//change the textboxMask when all chars present
maskedTextBox1.Mask = "0:000.000.000-00";
}
答案 1 :(得分:0)
考虑使用MaskedTextbox Mask
等于000.000.000-00
。它将以通常的方式从左到右填充蒙版。输入看起来像:
___.___.___-__
使用类型1
时,它会显示1__.___.___-__
。
使用类型12
时,它会显示12_.___.___-__
。等等。