2017-05-15 12 views
-1

xxx-xxx-xxxx形式でなければならないテキストボックスに電話番号を入力しようとしているWPFプログラムを作成しています。私は、新しい入力を解析して正しいことを確認し、新しい数値または ' - '値をテキストボックスに追加し、次のキーを押すのを待つキープレスイベントを持っています。私の問題はこれです:古いテキストボックスの値が上書きまたは消去されない

テキストボックスには何も

キープレスイベント数5

テキスト入力欄に入力

コールtextBox.Text = "5" を解析して表示します。

exitイベントハンドリング

テキストボックスは、今私は、私はボックスが更新されているが、実際に入力したテキストイマイチがリセットされていることを知っているかなり確信して

5Sの間にカーソルを置いて55が表示されます。テキストボックスに設定したものだけが表示されるようにキーストロークを削除するにはどうすればよいですか?

ありがとうございます。

編集:現在のコードを参考にしてください。

private void PhoneNumberBox_KeyDown(object sender, KeyEventArgs e) 
    { 
     String keyString = e.Key.ToString(); 
     char keyPress = 'x'; 

     if (keyString.Length == 2 && keyString[0] == 'D') 
      keyPress = keyString[1]; 


     TextBox textBox = sender as TextBox; 

     if ((keyPress > 47 && keyPress < 58) || keyPress == '-') 
     { 
      int length = _textBoxText.Length; 

      switch (length) 
      { 
       case 0: 
       case 1: 
       case 2: 
       case 4: 
       case 5: 
       case 6: 
       case 8: 
       case 9: 
       case 10: 
       case 11: 
        { 
         if (keyPress != '-') 
          _textBoxText += keyPress; 
         break; 
        } 
       case 3: 
       case 7: 
        { 
         if (keyPress == '-') 
          _textBoxText += keyPress; 
         break; 
        } 
      } 
      textBox.Clear(); 

      textBox.Text = _textBoxText; 
     } 
     else 
      Invalid_Entry(textBox); 
    } 
+1

[マスクされたテキストボックス](http://stackoverflow.com/questions/481059/where-can-i-find-a-free-masked-textbox-in-wpf) –

+0

私はそう信じていません。私はWPF上で始めているので、すべてのSTLを使用しています。 –

+0

STLはどういう意味ですか? –

答えて

0

私の問題は、イベントが処理されたことを認識していないという事実でした。私がする必要があったのは以下の通りでした:

e.Handled = true;

問題が解決しました。

+0

イベントはそれを実現できません。 –

関連する問題