如何检查答案然后加载新答案

时间:2017-09-05 11:31:31

标签: vb.net

我正在尝试进行从随机文件中读取的测验,检查答案然后选择一个新问题。我遇到了麻烦,因为当我点击按钮检查答案时,它会针对下一个问题而不是当前问题进行检查。我认为这与在检查之前打开下一个问题有关。我只是相当新的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

0 个答案:

没有答案