該程序應該接受有效的投票人選,將文本框中輸入的名稱添加到列表框中。在列表框中,用戶可以雙擊他們選擇的候選人。單擊帳單按鈕後,顯示候選人姓名和選票的列表框將出現在另一個列表框的旁邊。爲什麼只顯示一個結果
我的問題是,lstTallies只顯示最後投票的候選人。 下面是我的代碼
Public Class Form1
Dim maxVotes As Integer
Dim winner As String
Dim votes() As Integer
Dim index As Integer
Dim candidates As String
Private Sub btnAdd_Click(sender As Object, e As EventArgs) Handles btnAdd.Click
If Not isValidInput(txtNewCandidate.Text) Then
Exit Sub
End If
lstCandidates.Items.Add(txtNewCandidate.Text)
txtNewCandidate.Clear()
txtNewCandidate.Focus()
ReDim Preserve votes(index)
index += 1
End Sub
Private Function isValidInput(ByRef firstName As String) As Boolean
If IsNumeric(txtNewCandidate.Text) Or txtNewCandidate.Text = "" Then
MsgBox("Please input a valid candidate name.")
txtNewCandidate.Focus()
Return False
Else
Return True
End If
End Function
Private Sub btnTally_Click(sender As Object, e As EventArgs) Handles btnTally.Click
lstTallies.Visible = True
lblTally.Visible = True
lstTallies.Items.Add(lstCandidates.Text & " " & votes(lstCandidates.SelectedIndex))
End Sub
Private Sub lstCandidates_DoubleClick(sender As Object, e As EventArgs) Handles lstCandidates.DoubleClick
If lstCandidates.SelectedIndex = -1 Then
MsgBox("Select a candidate by double-clicking")
End If
votes(lstCandidates.SelectedIndex) += 1
MsgBox("Vote Tallied")
End Sub
End Class
問題是你不是'迭代'通過'lstCandidates'。也只是一個建議,使用索引是不可靠的你在做什麼,你必須有一些像_CandidateID_這樣的標識符爲您的候選人。 –
我嘗試迭代通過lstCandidates並返回最後一次點擊候選人重複的票數。 –
候選人的指數和他/她的投票是一樣的嗎? –