读书人

vb有关问题紧急求解决

发布时间: 2012-02-02 23:57:14 作者: rapoo

vb问题紧急,求解决
部分程序如下:
Private Sub Form_KeyPress(KeyAscii As Integer)
Dim i, j As Integer
For i = 0 To Label1.Count - 1
If Label1.Item(i).Caption = Chr(KeyAscii) Then
Image1.Visible = True
Image1.Top = Label1.Item(i).Top
Image1.Left = Label1.Item(i).Left - 300
Label1.Item(i).Top = -500
If shezhi.sOption1.Value Then
If shezhi.nOption1.Value Then H = H + 1
ElseIf shezhi.nOption2.Value Then H = H + 2
ElseIf shezhi.nOption3.Value Then H = H + 3
End If
If shezhi.sOption2.Value Then
If shezhi.nOption1.Value Then H = H + 2
ElseIf shezhi.nOption2.Value Then H = H + 3
ElseIf shezhi.nOption3.Value Then H = H + 4
End If
If shezhi.sOption3.Value Then
If shezhi.nOption1.Value Then
H = H + 3
ElseIf shezhi.nOption2.Value Then
H = H + 4
ElseIf shezhi.nOption3.Value Then
H = H + 5
End If

Label2.Caption = "得分:" & H
Randomize
If shezhi.nOption1.Value Then
j = Int((122 - 97 + 1) * Rnd + 97)
ElseIf shezhi.nOption2.Value Then
j = Int((90 - 65 + 1) * Rnd + 65)
ElseIf shezhi.nOption3.Value Then
j = Int((126 - 48 + 1) * Rnd + 48)
End If
Label1.Item(i).Caption = "" & Chr(j) & ""
End If
If Label1.Item(i).Top > 6250 Then
If MsgBox("此次游戏结束,重来吗?", vbYesNo, "游戏结束") = vbYes Then
MsgBox "您现在的得分是:" & H & "分", vbOKOnly, "成绩"
Unload Me
shezhi.Visible = True
Exit Sub
End If

Next i
End Sub
纠结了很久,老说我NEXT没有for,实在想不出

[解决办法]

VB code
Private Sub Form_KeyPress(KeyAscii As Integer)Dim i, j As IntegerFor i = 0 To Label1.Count - 1    If Label1.Item(i).Caption = Chr(KeyAscii) Then        Image1.Visible = True        Image1.Top = Label1.Item(i).Top        Image1.Left = Label1.Item(i).Left - 300        Label1.Item(i).Top = -500        If shezhi.sOption1.Value Then            If shezhi.nOption1.Value Then H = H + 1            ElseIf shezhi.nOption2.Value Then H = H + 2            ElseIf shezhi.nOption3.Value Then H = H + 3        End If        If shezhi.sOption2.Value Then            If shezhi.nOption1.Value Then H = H + 2            ElseIf shezhi.nOption2.Value Then H = H + 3            ElseIf shezhi.nOption3.Value Then H = H + 4        End If        If shezhi.sOption3.Value Then            If shezhi.nOption1.Value Then                H = H + 3            ElseIf shezhi.nOption2.Value Then                H = H + 4            ElseIf shezhi.nOption3.Value Then                H = H + 5            End If            Label2.Caption = "得分:" & H            Randomize            If shezhi.nOption1.Value Then                j = Int((122 - 97 + 1) * Rnd + 97)            ElseIf shezhi.nOption2.Value Then                j = Int((90 - 65 + 1) * Rnd + 65)            ElseIf shezhi.nOption3.Value Then                j = Int((126 - 48 + 1) * Rnd + 48)            End If            Label1.Item(i).Caption = "" & Chr(j) & ""        End If        If Label1.Item(i).Top > 6250 Then            If MsgBox("此次游戏结束,重来吗?", vbYesNo, "游戏结束") = vbYes Then                MsgBox "您现在的得分是:" & H & "分", vbOKOnly, "成绩"                Unload Me                shezhi.Visible = True                Exit Sub            End If        End If    End IfNextEnd Sub你写少了多少个End If呀?代码应该要缩进,否则就会出现你这种情况。 

读书人网 >VB

热点推荐