2015-11-05 76 views
-4
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」後數據都會丟失。我不知道我在做什麼錯誤或如何解決它。數據丟失在recors

感謝

+1

我很困惑...''txtExam1.Clear()'清除該文本框控件中的輸入...並且每次單擊'btnNextStudent'時它都會運行。這就是你所說的「每次點擊之間的數據丟失......」? –

回答

-1

原因是這樣的:

StudentRecords(指數).StudentName是越來越一次又一次地更換。你只需給它一個新的價值。這在字符串中是不可能的。如果你想跟蹤多個值,你應該創建一個包含你的字符串的「List」。

// 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上,所以我不能向你保證代碼是正確的。但這是你的問題的原因。