2017-09-20 18 views
-2

私は小数点以下が2つだけである必要があり、このテキストボックスを持って、それが動作しますが、それはあなたがテキストボックスのKeyPressイベントハンドラでこれを行うことができ、その後C#テキストボックスの小数点以下の桁数を2に制限する方法は?

try 
     { 
      if (string.IsNullOrWhiteSpace(textBox1.Text)) 
      { 
       textBox2.Clear(); 
      } 
      else 
      { 
       if (Convert.ToDouble(textBox1.Text) > Convert.ToDouble(grandTotal.Text)) 
       { 
        double change = Convert.ToDouble(textBox1.Text) - Convert.ToDouble(grandTotal.Text); 
        textBox2.Text = change.ToString("#,0.00"); 
       } 
       else if (Convert.ToDouble(textBox1.Text) == Convert.ToDouble(grandTotal.Text)) 
       { 
        textBox2.Text = "0"; 
       } 
       else 
       { 
        textBox2.Clear(); 
       } 
      } 
     } 
     catch(Exception) 
     { 

     } 
+0

このコードが実行されると、?マスクされたテキストボックスを調べようとしましたか? –

+0

**ここに**を入れてください。世界のCプログラマーに 'キャッチ(例外)'をやめさせるよう教えてください。これはアンチパターンです。 – Enigmativity

答えて

0

バックスペース無効にします。基本的には何を

private void textBox1_KeyPress(object sender, KeyPressEventArgs e) 
    { 
     if (e.KeyChar == '.' && textBox1.Text.Contains('.')) 
      e.Handled = true; 
     if (char.IsNumber(e.KeyChar) || e.KeyChar == '.') 
     { 
      if (Regex.IsMatch(
      textBox1.Text, 
      "^\\d*\\.\\d{2}$")) e.Handled = true; 
     } 
     else e.Handled = e.KeyChar != (char)Keys.Back; 
    } 

をそれは小数点を2つに制限し、小数点を1に制限します。しかし、バックスペースは正常に動作しているはずです。

0

また、選択したコントロール(textBox1)でコーディングするのではなく、別のオプションがあります。再利用可能なカスタムテキストボックスコントローラを作成できます。これはあなたを案内しますDecimal Textbox in Windows Forms

関連する問題