回 帖 发 新 帖 刷新版面

主题:请帮菜鸟查个错~~~

[em8]真的不知道这个程序错在哪里,请高手指点!谢谢~~~
界面如图所示,代码如下:
Private Sub Command1_Click()
    Dim m As Integer, i As Integer
    For i = 0 To 9
        If Text1(i).Text = Str(Val(Label1(i).Caption) + Val(Label3(i).Caption)) Then m = m + 1
    Next i
    MsgBox "你的成绩是:" + Str(m)
    End
End Sub

Private Sub Form_Activate()
    Randomize
    For i = 0 To 9
         Label1(i).Caption = ""
         Label2(i).Caption = "+"
         Label3(i).Caption = ""
         Label4(i).Caption = "="
         Text1(i).Text = ""
         Text1(i).TabIndex = i
         Label1(i).Caption = Str(Int(Rnd * 90 + 10))
         Label3(i).Caption = Str(Int(Rnd * 90 + 10))
     Next i
End Sub

Private Sub Command2_Click()
    End
End Sub
具体问题是:
    运行程序后,如果在前几个文本框中无论输入结果是否正确,然后按“交卷”,则都会弹出“你的成绩是0分”。或者,有时输入的结果有两个是正确的,应该得20分才对,可弹对话框说成绩为10分....反正就是不对![em10]
    感觉可能是条件表达式不对,试着将Text1(i).Text = Str(Val(Label1(i).Caption) + Val(Label3(i).Caption)) 改成了val(text1(i).text)=Val(Label1(i).Caption) + Val(Label3(i).Caption),结果还是不对![em10]
    说实话,应该说在同一机房,有的机器上如果写val(text1(i).text)=Val(Label1(i).Caption) + Val(Label3(i).Caption)则能运行正确,而有的却不行。真不知道是怎么回事呀!哭~~~~~~~~~~

回复列表 (共2个回复)

沙发

[quote]有的机器上如果写val(text1(i).text)=Val(Label1(i).Caption) + Val(Label3(i).Caption)则能运行正确,而有的却不行 [/quote]
这也太奇怪了。我的电脑上运行正确。
你在运行不正确的电脑上一步一步调试,看一下val(Text(i).text)的值是什么应该就可以发现问题。

板凳

[quote][quote]有的机器上如果写val(text1(i).text)=Val(Label1(i).Caption) + Val(Label3(i).Caption)则能运行正确,而有的却不行 [/quote]
这也太奇怪了。我的电脑上运行正确。
[/quote]
建议你用多种方式输入:比如:
1.前两题输入正确答案,其他的题目全部输入0
2.最后两题输入正确答案,其他的题目全部输入0
3.前两题输入正确答案,其他的题目全部不输入
4.最后两题输入正确答案,其他的题目全部不输入
我调试出最匪疑所思的一次是:前两题输入正确答案,其他的题目全部不输入时,得0分;而最后两题输入正确答案,其他的题目全部不输入时,得20分!

我来回复

您尚未登录,请登录后再回复。点此登录或注册