1

合計長が == 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));
            }
        }

ありがとう

4

2 に答える 2

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";
}
于 2013-04-13T12:03:55.170 に答える
0

MaskedTextboxMaskequal toで使用することを検討してください000.000.000-00。通常の方法でマスクを左から右に塗りつぶします。入力は次のようになります。

___.___.___-__

タイプを使用する1と、 が表示され1__.___.___-__ます。タイプを使用する12と、 が表示され12_.___.___-__ます。等々。

于 2013-04-13T11:51:33.747 に答える