I am not familiar with C# but I think my visual basic 6.0 programming logic may be helpful to you�Please change my code as per C# syntax grammar.
1) one textbox place on form and wrote code in KeyPress and KeyUp event
Private Sub txtNumber_KeyPress(KeyAscii As Integer)
Select Case KeyAscii
Case 43 'For +
If InStr(1, txtNumber, "-", vbTextCompare) = 1 Then
txtNumber = "+" & Mid(txtNumber, 2)
txtNumber.SelStart = Len(txtNumber)
txtNumber.SelLength = 0
KeyAscii = 0
ElseIf InStr(1, txtNumber, "+", vbTextCompare) = 0 Then
txtNumber = "+" & txtNumber
txtNumber.SelStart = Len(txtNumber)
txtNumber.SelLength = 0
KeyAscii = 0
Else
KeyAscii = 0
End If
Case 45 'for -
If InStr(1, txtNumber, "+", vbTextCompare) = 1 Then
txtNumber = "-" & Mid(txtNumber, 2)
txtNumber.SelStart = Len(txtNumber)
txtNumber.SelLength = 0
KeyAscii = 0
ElseIf InStr(1, txtNumber, "-", vbTextCompare) = 0 Then
txtNumber = "-" & txtNumber
txtNumber.SelStart = Len(txtNumber)
txtNumber.SelLength = 0
KeyAscii = 0
Else
KeyAscii = 0
End If
Case vbKeyBack, vbKey0 To vbKey9
Case Else
KeyAscii = 0
End Select
End Sub
Private Sub txtNumber_KeyUp(KeyCode As Integer, Shift As Integer)
If Trim(txtNumber) = "" Or KeyCode = 109 Or KeyCode = 107 Then Exit Sub
If txtNumber.Text > 100 Or txtNumber.Text < -100 Then
MsgBox "Please enter proper value.", vbInformation + vbOKOnly
txtNumber.Text = Left(txtNumber.Text, Len(txtNumber.Text) - 1)
txtNumber.SelStart = Len(txtNumber)
txtNumber.SelLength = 0
End If
End Sub