我已经做了很长一段时间了,但我几乎把头发撕掉了。在任何人开枪并且说我正在寻找关于任务的免费讲义之前,请注意,我完成了90%的任务!该计划在列表中有4个商业广告,您可以选择投票的广告,并保存您的投票并统计它。由于它在程序中统计,它还将其保存到文件中。下次打开文件时,您可以点击“显示投票”,它会读取文件,并为用户重新计算所有内容。
这是程序的样子,至少是我所做的。我的问题是,当我点击显示投票时,没有任何反应。它不会读取文件中的任何内容。我使用一个消息框测试它是否显示文件中的任何内容,它确实显示项目中的第一个项目。有人有什么想法吗?!
Public Class frmMain
Dim intVotes(3) As Integer
Private Sub frmMain_Load(sender As Object, e As EventArgs) Handles MyBase.Load
lstCom.Items.Add("Budweiser")
lstCom.Items.Add("FedEx")
lstCom.Items.Add("E*Trade")
lstCom.Items.Add("Pepsi")
lstCom.SelectedIndex = 0
End Sub
Private Sub btnSaveVote_Click(sender As Object, e As EventArgs) Handles btnSaveVote.Click
Dim outFile As IO.StreamWriter
Dim intSub As Integer
intSub = lstCom.SelectedIndex
If intSub <= intVotes.GetUpperBound(0) Then
intVotes(intSub) += 1
If IO.File.Exists("CallerVotes.txt") Then
outFile = IO.File.CreateText("CallerVotes.txt")
If lstCom.SelectedIndex = 0 Then
outFile.WriteLine("Budweiser")
ElseIf lstCom.SelectedIndex = 1 Then
outFile.WriteLine("FedEx")
ElseIf lstCom.SelectedIndex = 2 Then
outFile.WriteLine("E*TRADE")
ElseIf lstCom.SelectedIndex = 3 Then
outFile.WriteLine("Pepsi")
End If
outFile.Close()
End If
End If
lblBud.Text = intVotes(0).ToString
lblFed.Text = intVotes(1).ToString
lblET.Text = intVotes(2).ToString
lblPep.Text = intVotes(3).ToString
End Sub
Private Sub ListBox1_SelectedIndexChanged(sender As Object, e As EventArgs) Handles lstCom.SelectedIndexChanged
End Sub
Private Sub btnExit_Click(sender As Object, e As EventArgs) Handles btnExit.Click
Me.Close()
End Sub
Private Sub btnDisplayVote_Click(sender As Object, e As EventArgs) Handles btnDisplayVote.Click
Dim inFile As IO.StreamReader
Dim strText As String
If IO.File.Exists("CallerVotes.txt") Then
inFile = IO.File.OpenText("CallerVotes.txt")
Do Until inFile.Peek = -1
strText = inFile.ReadLine
If strText = "Budweiser" Then
intVotes(0) += 1
ElseIf strText = "FedEx" Then
intVotes(1) += 1
ElseIf strText = "E*TRADE" Then
intVotes(2) += 1
ElseIf strText = "Pepsi" Then
intVotes(3) += 1
End If
Loop
inFile.Close()
End If
End Sub
End Class
答案 0 :(得分:1)
我认为您的问题是您没有将intVotes数组中的值分配给标签。在btnDisplayVote_Click
结束时尝试添加
lblBud.Text = intVotes(0).ToString
lblFed.Text = intVotes(1).ToString
lblET.Text = intVotes(2).ToString
lblPep.Text = intVotes(3).ToString
答案 1 :(得分:1)
如果你查看你的文件,我想你会看到你只有一个条目。每次使用CreateText
方法单击“保存”按钮时,都会覆盖文件。
(强调我的)
此方法等效于StreamWriter(String,Boolean)构造函数重载,append参数设置为false。如果path指定的文件不存在,则创建该文件。如果文件存在,其内容将被覆盖。
请尝试使用AppendText
方法。
即
If IO.File.Exists("CallerVotes.txt") Then
outFile = IO.File.AppendText("CallerVotes.txt")
您还需要根据DeanOC的答案将您读入的值分配给相应的标签。