2016-09-15 186 views
0

該程序應該接受有效的投票人選,將文本框中輸入的名稱添加到列表框中。在列表框中,用戶可以雙擊他們選擇的候選人。單擊帳單按鈕後,顯示候選人姓名和選票的列表框將出現在另一個列表框的旁邊。爲什麼只顯示一個結果

我的問題是,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 
+0

問題是你不是'迭代'通過'lstCandidates'。也只是一個建議,使用索引是不可靠的你在做什麼,你必須有一些像_CandidateID_這樣的標識符爲您的候選人。 –

+0

我嘗試迭代通過lstCandidates並返回最後一次點擊候選人重複的票數。 –

+0

候選人的指數和他/她的投票是一樣的嗎? –

回答

0

試試這個:

假設候選人的索引和他/她投票是相同的:

Private Sub btnTally_Click(ByVal sender As Object, ByVal e As EventArgs) Handles btnTally.Click 
    lstTallies.Visible = True 
    lblTally.Visible = True 
    For i = 0 To lstCandidates.Items.Count - 1 
     lstTallies.Items.Add(lstCandidates.Items(i).ToString & " - " & votes(i)) 
    Next 
    End Sub 

你不能得到內容ListBox除非你iterate它。

+0

好的,有效!謝謝!現在我需要在圖片框中顯示獲勝者(s')的名字。我不知道從哪裏開始。 –

+0

這是一個不同的故事。請張貼另一個問題,包括您希望如何呈現結果的詳細信息,如果可以,我會盡力回答。 –

+0

我發佈了它 –