Option Explicit
Dim ArrStr(0 To 32) As String
Public PointFlag As Boolean
Public i As IntegerPrivate Sub Command1_Click(Index As Integer)
    Text1.SetFocus
    If PointFlag = False Then
    If i = 0 Then
        If Index <> 0 Then
            ArrStr(i) = Command1(Index).Caption
            Text1.Text = ArrStr(i) & "."
            i = i + 1
        Else
            Text1.Text = "0."
        End If
    ElseIf i < 32 Then
        ArrStr(i) = ArrStr(i - 1) & Command1(Index).Caption
        Text1.Text = ArrStr(i) & "."
        i = i + 1
    End If
    Else
    If i = 0 Then
        ArrStr(i) = Command1(Index).Caption
        Text1.Text = ArrStr(i)
        i = i + 1
    ElseIf i < 32 Then
        ArrStr(i) = ArrStr(i - 1) & Command1(Index).Caption
        Text1.Text = ArrStr(i)
        i = i + 1
    End If
    End If
End SubPrivate Sub Command2_Click()
    Text1.SetFocus
    If PointFlag = False Then
        If Text1.Text = "0." Then
            PointFlag = True
            ArrStr(i) = "0."
            i = i + 1
        Else
            PointFlag = True
            ArrStr(i) = ArrStr(i - 1) & "."
            i = i + 1
        End If
    End If
End SubPrivate Sub Command3_Click()
    If i > 1 Then
    If ArrStr(i) <> ArrStr(i - 1) & "." Then
        Text1.Text = ArrStr(i - 1)
        i = i - 1
    Else
        Text1.Text = ArrStr(i - 1) & "."
        i = i - 1
        PointFlag = False
    End If
    ElseIf i = 1 Then
        Text1.Text = "0."
    End If
End SubPrivate Sub Form_Load()
    Text1.Text = "0."
    i = 0
    PointFlag = False
End Sub
Command1()是一个控件数组,是从0-9这10个数字,按下其中一个后就把该输出的值放到一个字符串数组ArrStr()里,为的就是便于将来退格键方便操作。Command2是小数点按钮,Command3就是退格键,无论代码怎样写都不能正确起作用,疑是在Command1的代码里把字符串的值与字符串数组的“i”的次序错开了,但是不知道从呵检查起,请高手帮我看看什么地方有错误。

解决方案 »

  1.   

    计算器例子
    http://www.daima.com.cn/down/29/5ivb_1293.asp
      

  2.   

    不要使用 数组 ,使用 Collection 试试看
      

  3.   

    '我是这样写退格和"."的。
    Private Sub TxtData_KeyPress(KeyAscii As Integer)
        If KeyAscii = 8 Then Exit Sub
        If KeyAscii=46 Then Exit Sub
        If Not IsNumeric(Chr(KeyAscii)) Then KeyAscii = 0
    End Sub
      

  4.   

    秋日看来对ASCII非常熟悉,呵呵,我就不行了,现在连A和a的码值都不记得了
      

  5.   

    我把你的代码复制下来运行很正常啊,Command3可以退格的,你的代码没有问题,请在其他方面检查一下。