2015-02-11 45 views
0

我仍然在尝试学习如何在vb.net中进行测验。我越来越近了。我有一个读取下一个和一个读取提交的按钮。我有一个标签,内容如下:问题1:以及包含问题的文本框。我在第一个文本框下面有一个文本框,其中有多个选择答案。如何获得下一个按钮来阅读我的文本文件中的下一个问题,这样人们可以在下一个按钮转到下一个问题之前选择答案?下一步按钮抓取文本文件中的下一行文本

这是我到目前为止的代码:

Private Sub Button40_Click(sender As Object, e As EventArgs) Handles Button40.Click 
    Dim FILE_NAME As String = "C:\Quiz\GenesisQuiz.txt" 
    If System.IO.File.Exists(FILE_NAME) = True Then 
     Dim objReader As New System.IO.StreamReader(FILE_NAME) 
     TextBox1.Text = objReader.ReadToEnd & vbCrLf 
     objReader.Close() 
    Else 
     MessageBox.Show("Wrong answer, please try again!") 
    End If 
End Sub 

这当然读的第一个问题到明年标注问题1文本框:如果我把文本中的任意多行到文本文件,然后所有的行读入文本框。 谢谢你的帮助。我认为这与一个做对于像声明:

For i As Integer = 1 To lineNumber - 1 

学习的乐趣!

这是正确的轨道吗?

Public Class Quiz 
    Public question As String 
    Public choices As String 
    Public answer As String 
    Public Score As Integer 
    Public Sub New(question As String, choices As String, answer As String, score As Integer) 
     Me.question = question 
     Me.choices = Choices 
     Me.answer = Answer 
     Me.Score = Score 
    End Sub 
End Class 

Private Sub Button40_Click(sender As Object, e As EventArgs) Handles Button40.Click 
    Dim QuizList As New List(Of Quiz)() 
End Sub 
End Class 

继续学习!感谢您的回应!

+0

将while文件读入一个List(Of String)(或者一个数组,如果必须的话)并从那里使用它们,则不需要每次都读取整个文件。你的'IF'语句也是诡异的 - FileExists的其他部分是FILENOTFOUND不是“错误的答案” – Plutonix 2015-02-11 01:44:38

+0

谢谢你的建设性批评Plutonix!我正在尝试为圣经学习应用程序进行测验 - 多项选择测验。我尝试了各种各样的方法来达到这个目标,但并没有真正喜欢我想要的东西。我只想每次添加1个问题,这样一个人就有机会在下一个问题按钮之前选择答案,以便在文本框中弹出下一个问题。我正在查看你给我的列表(字符串)答案。谢谢! – 2015-02-11 02:01:59

+0

如果它是多选题,你应该使用一个类来保持问题,选择和实际答案。把它们放在'测验列表'中,显示'QuizList(ndx)',然后当它们碰到下一个时,对它进行评分并为下一个增加'ndx'。 – Plutonix 2015-02-11 02:05:54

回答

0

感谢Plutonix和BobRodes帮助我!

Public Class Form1 
Dim lines() As String 
Dim answers() As String 
Dim index As Integer = 0 

Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load 
    lines = IO.File.ReadAllLines("C:\Quiz\GenesisQuiz.txt") 
    answers = IO.File.ReadAllLines("C:\Quiz\GenesisAnswers.txt") 

Private Sub Button40_Click(sender As Object, e As EventArgs) Handles Button40.Click 
    TextBox1.Text &= lines(index) & Environment.NewLine 
    index += 1 
    If index > lines.GetUpperBound(0) Then Button40.Enabled = False 
End Sub 

Private Sub Button41_Click(sender As Object, e As EventArgs) Handles Button41.Click 
    TextBox1.Clear() 
End Sub 

Private Sub Button40_MouseClick(sender As Object, e As MouseEventArgs) Handles Button40.MouseClick 
    If File.Exists("C:\Quiz\GenesisAnswers.txt") Then 
     Dim ioFile As New StreamReader("C:\Quiz\GenesisAnswers.txt") 
     TextBox2.Text = ioFile.ReadLine() 
     TextBox3.Text = ioFile.ReadLine() 
     TextBox4.Text = ioFile.ReadLine() 
     TextBox5.Text = ioFile.ReadLine() 
    End If 
End Sub 

Private Sub Button41_MouseClick(sender As Object, e As MouseEventArgs) Handles Button41.MouseClick 
    TextBox2.Clear() 
    TextBox3.Clear() 
    TextBox4.Clear() 
    TextBox5.Clear() 
End Sub 

所以这是我迄今为止的测验。仍然有办法,但到达那里。仍在学习和玩乐。随意给建设性的批评!

相关问题