Private Sub btnNextStudent_Click(sender As Object, e As EventArgs) Handles btnNextStudent.Click
If txtExam1.Text > 100 Or txtExam2.Text > 100 Or txtExam1.Text < 0 Or txtExam2.Text < 0 Then
MsgBox("You entered a mark higher than 100 or lower than 0. Please try again.",, "Input Error")
Else
ReDim StudentRecords(NumOfStudents + 1)
btnFinished.Enabled = True
StudentRecords(Index).StudentName = txtStudentName.Text
StudentRecords(Index).Exam1Mark = txtExam1.Text
StudentRecords(Index).Exam2Mark = txtExam2.Text
MsgBox(StudentRecords(0).Exam2Mark)
Index += 1
NumOfStudents += 1
txtStudentName.Clear()
txtExam1.Clear()
txtExam2.Clear()
这是我现在的代码,我正在尝试将数据保存在记录中的文本框“txtStudentName”,“txtExam1”和“txtExam2”中。唯一的问题是每次点击按钮“btnNextStudent”之间的数据都会丢失。我不知道我做错了什么或如何解决它。
谢谢
答案 0 :(得分:-1)
原因是:
StudentRecords(Index).StudentName一次又一次被替换。你只需给它一个新值。这在字符串中是不可能的。如果要跟踪多个值,则应创建一个包含字符串的“列表”。
// Declare outside of button
Public StudentNameList As New List(Of String)()
Public Exam1MarkList As New List(Of String)()
Public Exam2MarkList As New List(Of String)()
// Add values when clicked
StudentNameList.Add(txtStudentName.Text)
Exam1MarkList(txtExam1.Text)
Exam2MarkList(txtExam2.Text)
// Retrieve values from your list
For Each Str As String In StudentNameList
MessageBox.Show(str)
Next
我现在正在使用Mac,因此无法向您保证代码是正确的。但这就是你问题的原因。