Public Sub ControlInput(txtText As TextBox, IntegerDigits As Integer, DecimalDigits As Integer)
Dim txtCurrently As String
Dim Str_IntegerDigits
Dim Digits As String
Dim Bln_Negative As Boolean
Dim userKeyAsc As Integer
txtCurrently = txtText.SelStart
Bln_Negative = False
Digits = InStr(1, txtText, "-")
If Digits > 0 Then txtText = Mid(txtText, Digits)
If Left(txtText, 1) = "-" Then
Bln_Negative = True
IntegerDigits = IntegerDigits - 1
Str_IntegerDigits = Mid(txtText, 2)
Else
Str_IntegerDigits = Mid(txtText, 1)
End If
Digits = InStr(1, Str_IntegerDigits, ".")
If Digits > 0 Then
If IntegerDigits > Digits - 1 Then
Str_IntegerDigits = Mid(Str_IntegerDigits, 1, Digits - 1) + Mid(Str_IntegerDigits, Digits, DecimalDigits + 1)
Else
IntegerDigits = Mid(Str_IntegerDigits, 1, IntegerDigits) + Mid(Str_IntegerDigits, Digits, DecimalDigits + 1)
Digits = InStr(1, Str_IntegerDigits, ".")
End If
Digits = Len(Str_IntegerDigits) - Digits
If Left(Str_IntegerDigits, 1) = "." Then
txtCurrently = txtCurrently + 1
Str_IntegerDigits = "0" & Str_IntegerDigits
End If
If Digits < DecimalDigits Then
' Str_IntegerDigits = Format(Str_IntegerDigits, "#0." + String(Digits, "0"))
Str_IntegerDigits = Format(Str_IntegerDigits, "#0" + String(Digits, "0"))
Else
' Str_IntegerDigits = Format(Str_IntegerDigits, "#0." + String(DecimalDigits, "0"))
Str_IntegerDigits = Format(Str_IntegerDigits, "#0" + String(DecimalDigits, "0"))
End If
Else
Str_IntegerDigits = Mid(Str_IntegerDigits, 1, IntegerDigits)
Str_IntegerDigits = Format(Str_IntegerDigits)
End If
If Bln_Negative Then Str_IntegerDigits = "-" & Str_IntegerDigits
txtText = Str_IntegerDigits
txtText.SelStart = txtCurrently
End Sub