OK.
Now we have the calculate routine, I think I see the problem...
hldval = CType(TextBox.Text, Integer)
hldval2 = CType(TextBox.Text, Integer)
Select Case calcfunc
Case "Add"
hldval = hldval + hldval2
Since hldval and hldval2 both get the value from TextBox.Text then will always contain the same value. So you addition will always give you double the last value, subtraction will give you zero, division will give you one, and multiply will square the value.
You need to look at having an internal "result" value - which can be a float or double, (there is no point in converting it to a string and back again) which you use as one of the operands, and into which you put the result so far.
In addition, since you are providing a decimal point, it migh be an idea to use float or double values in your conversion rather than integers! :laugh: