2016-12-31 19 views
0

現在、2つのテキストボックスからデータを受け取り、その上で操作を実行する電卓をC#で作成しようとしています。私は負の値を扱う際に特に問題となるのは、最初にテキストボックスにハイフンが1つしかないことを制限しています。これは私が試したコードですが、バックスペースを使ってハイフンを削除しても、それを元に戻すことはできません。入力を制限して、Cのテキストボックスにハイフン( - )を付ける#

bool neg = false; 
    private void val2_KeyPress(object sender, KeyPressEventArgs e) 
    { 
     char ch = e.KeyChar; 
     if (!Char.IsDigit(ch) && ch != 8 && ch != 127 && ch != 46 && ch != 45) 
     { 
      e.Handled = true; 
     } 
     else if (ch == 46) 
     { 
      if (pnt2 == true) 
      { 
       e.Handled = true; 
      } 
      pnt2 = true; 
     } 
     else if (ch == 45) 
     { 
      if (neg == true) 
      { 
       e.Handled = true; 
      } 
      neg = true; 
     } 
    } 

ありがとうございます。

+0

は、WindowsフォームやWebフォームを使用していますか? – Valkyrie

+0

私はWindowsフォームを使用しています。 –

+0

pnt2とnegの目的は何ですか? –

答えて

2

コントロールテキストを確認してください。ハイフンが含まれている場合は、別のハイフンを許可しないでください。

if(val2.Text.Contains("-")) 
{ 
    e.Handled = true; 
} 

あなただけの最初の文字としてハイフンを許可したい場合は次のようにします

if(val2.Text.Length > 0) 
{ 
    e.Handled = true; 
} 
+0

もう一日あなたを救った、もう一度ありがとう! :) –

関連する問題