你编程的思路非常混乱，简直不知道你的程序在干什么。要进行计算，你必须先使用Val函数将字符型的Text属性转换为数字型，否则你进行“+”运算只能是字符串加法而不是你想要的数学运算。 
    在VB的例子中有一个Calc程序，就是一个简单的计算器，你可以看一下。 
<END>     
Dim Num1, Num2 As Single 
    Dim StrNum1, StrNum2 As String 
    Dim FirstNum As Boolean 
    Dim PointFlag As Boolean 
    Dim Runsign As Integer 
    Dim SignFlag As Boolean 
    Private Sub Command1_Click(Index As Integer) 
    Select Case Index 
     Case 0 To 9 
     If FirstNum Then 
     StrNum1 = Str(Index) 
     FirstNum = False 
     Else 
     StrNum1 = LTrim(StrNum1) + LTrim(Str(Index)) 
     End If 
     Text1.Text = Val(StrNum1) 
     Case 10 
     If Not PointFlag Then 
     If FirstNum Then 
     StrNum1 = "0." 
     FirstNum = False 
     Else 
     StrNum1 = LTrim(StrNum1) + LTrim(".") 
     End If 
     Else 
     Exit Sub 
     End If 
     PointFlag = True 
     Text1.Text = Val(StrNum1) 
     Case 12 To 15 
     FirstNum = True 
     PointFlag = False 
     If SignFlag Then 
     Call Run 
     Else 
     SignFlag = True 
     StrNum2 = StrNum1 
     StrNum1 = "" 
     End If 
     Runsign = Index - 11 
     Case 11 
     On Error Resume Next 
     If Not SignFlag Then 
     Text1.Text = StrNum1 
     equal = Val(StrNum1) 
     FirstNum = True 
     PointFlag = False 
     Else 
     Call Run 
     SignFlag = False 
     End If 
     Case Else 
     Call ClearData 
    End Select 
    End Sub 
    Private Sub Form_Load() 
    If App.PrevInstance Then MsgBox "请不要多次运行此程序，谢谢！", vbAbortRetryIgnore: Unload Me 
    Num1 = 0 
    Num2 = 0 
    StrNum1 = "" 
    StrNum2 = "" 
    FirstNum = True 
    PointFlag = False 
    Runsign = 0 
    SignFlag = False 
    End Sub 
    Sub Run() 
     On Error Resume Next 
     Dim equal As Single 
     Dim equal2 As Double 
     Num1 = Val(StrNum2) 
     Num2 = Val(StrNum1) 
     Select Case Runsign 
     Case 1 
     equal = Num1 + Num2 
     If Num1 >= 65536 Or Num2 >= 65536 Or equal >= 65536 Then 
     equal = 0 
     equal2 = Num1 + Num2 
     End If 
     Case 2 
     equal = Num1 - Num2 
     If Num1 >= 65536 Or Num2 >= 65536 Or equal >= 65536 Then 
     equal = 0 
     equal2 = Num1 - Num2 
     End If 
     Case 3 
     equal = Num1 * Num2 
     If Num1 >= 65536 Or Num2 >= 65536 Or equal >= 65536 Then 
     equal = 0 
     equal2 = Num1 * Num2 
     End If 
     Case 4 
     equal = Num1 / Num2 
     If Num1 >= 65536 Or Num2 >= 65536 Or equal >= 65536 Then 
     equal = 0 
     equal2 = Num1 / Num2 
     End If 
     End Select 
     If equal = 0 Then a = equal2 Else a = equal 
     StrNum2 = Str(a) 
     StrNum1 = StrNum2 
     Text1.Text = Val(StrNum2) 
    End Sub 
    Sub ClearData() 
     Num1 = 0 
     Num2 = 0 
     StrNum1 = "" 
     StrNum2 = "" 
     FirstNum = True 
     PointFlag = False 
     Runsign = 0 
     SignFlag = False 
     Text1.Text = 0 
    End Sub 
<END>

    