このプログラムは、有効な投票者候補を受け入れ、テキストボックスに入力した名前をリストボックスに追加することになっています。リストボックスで、ユーザーは選択した候補をダブルクリックすることができます。集計ボタンをクリックすると、候補者の名前と票を表示するリストボックスが他のリストボックスの横に表示されます。なぜ1つの結果しか表示されないのですか
私の問題は、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'を通して' iterating'していないことです。また、あなたがやっていることでインデックスを使った信頼性がない場合は、あなたの候補について_CandidateID_のような識別子を持たなければなりません。 –
私はiterating throuhg lstCandidatesを試してみました。そして最後にクリックされた候補が投票数に反復して返されました。 –
候補とその投票の指標は同じですか? –