我正在尝试进行从随机文件中读取的测验,检查答案然后选择一个新问题。我遇到了麻烦,因为当我点击按钮检查答案时,它会针对下一个问题而不是当前问题进行检查。我认为这与在检查之前打开下一个问题有关。我只是相当新的Visual Basic和编码一般所以任何帮助将不胜感激。 这是给我麻烦的代码。(对不起代码的大部分)
Private Sub btn_next_Click(sender As Object, e As EventArgs) Handles btn_next.Click
ProgressBar1.Increment(1)
'Selects Random Number and Puts it into var_qnum
Dim curNumber As Integer
If (alreadyPicked.Count < var_amount) Then
Dim rand As Random = New Random
Do
curNumber = rand.Next(0, var_amount)
Loop While (alreadyPicked.Contains(curNumber))
End If
If (curNumber >= 0 AndAlso Not alreadyPicked.Contains(curNumber)) Then
alreadyPicked.Add(curNumber)
var_qnum = curNumber
var_filepath = "\questions\" + var_qnum.ToString + ".txt"
Else
End If
'Defines var_row stuff
Dim var_row As Integer = 0
Dim var_question As String
Dim var_type As String
Dim var_answer As String
Dim var_opta As String
Dim var_optb As String
Dim var_optc As String
Dim var_optd As String
'Opens the file corresponding to var_qnum
Using MyReader As New Microsoft.VisualBasic.
FileIO.TextFieldParser(
Application.StartupPath & var_filepath)
MyReader.TextFieldType = FileIO.FieldType.Delimited
MyReader.SetDelimiters("|")
Dim currentRow As String()
While Not MyReader.EndOfData
Try
currentRow = MyReader.ReadFields()
Dim currentField As String
For Each currentField In currentRow
var_row += 1
If var_row = 1 Then
var_question = currentField
ElseIf var_row = 2 Then
var_type = currentField
ElseIf var_row = 3 Then
var_opta = currentField
ElseIf var_row = 4 Then
var_optb = currentField
ElseIf var_row = 5 Then
var_optc = currentField
ElseIf var_row = 6 Then
var_optd = currentField
ElseIf var_row = 7 Then
var_answer = currentField
var_row = 0
ElseIf var_row = 3 And var_type = "Close" Then
var_answer = currentField
var_row = 0
End If
Next
Catch ex As Microsoft.VisualBasic.
FileIO.MalformedLineException
MsgBox("Line " & ex.Message &
"Is Not valid And will be skipped.")
End Try
End While
End Using
lbl_type.Text = var_type
If var_type = "Multiple Choice" Then
rb_a.Visible = True
rb_b.Visible = True
rb_c.Visible = True
rb_d.Visible = True
rb_a.Text = var_opta
rb_b.Text = var_optb
rb_c.Text = var_optc
rb_d.Text = var_optd
End If
lbl_number.Text = var_qnum.ToString
txt_questionbox.Text = var_question
Dim var_check As String = "NULL"
If rb_a.Checked Then
var_check = "a"
ElseIf rb_b.Checked Then
var_check = "b"
ElseIf rb_c.Checked Then
var_check = "c"
ElseIf rb_d.Checked Then
var_check = "d"
End If
If var_check = var_answer Then
var_correct += 1
rb_a.Checked = False
rb_b.Checked = False
rb_c.Checked = False
rb_d.Checked = False
btn_next.Text = "Skip"
var_check = "NULL"
ElseIf var_check = "NULL" Then
var_skip += 1
ElseIf var_check <> var_answer Then
var_incorrect += 1
rb_a.Checked = False
rb_b.Checked = False
rb_c.Checked = False
rb_d.Checked = False
btn_next.Text = "Skip"
var_check = "NULL"
Else
MsgBox("Error")
End If
If var_correct + var_incorrect + var_skip = var_amount Then
Me.Visible = False
Form3.Visible = True
End If
End Sub