我正在为我的Visual Basic类开发一个项目,在该项目中,我应该读取一个文件,并在列表框中显示信息(员工姓名和工资)。
我一共有4张表格。第一个表单实际上没有显示任何内容,它只是具有打开文件、选择其他3个表单中的任何一个并退出表单的菜单项。在第二种形式(姓名)中,只有从文件中读取的员工姓名显示在列表框中。在第三种形式(工资)中,列表框中只显示从文件中读取的员工工资。第四个表单与第二个表单基本相同,显示从文件中读取的员工姓名。
问题是,我不知道如何做到这一点,以便在列表框中只显示文件的某些部分(姓名和薪水)。此外,在第四种形式中,我必须要求用户输入他们希望为所选员工计算工资的月数,然后将他们的工资乘以用户输入的月数。我知道该怎么做,除了如何拿到薪水。例如,我认为它应该是这样的:
lbl总计。Text=dblSalary*intMonths
但我不知道如何在dblSalary变量中只存储所选员工的工资?
这是我到目前为止写的代码,但当用户从主窗体单击file->open时,它只是打开一个打开的文件对话框
Public Class Main
Private Sub OpenFileToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles OpenFileToolStripMenuItem.Click
Dim open As New OpenFileDialog
open.Filter = "text files |*.txt|All Files|*.*"
open.InitialDirectory = Environment.GetFolderPath(Environment.SpecialFolder.DesktopDirectory)
End Sub
End Class
这是我的文本文件名为employees.txt
Steve McGarret
1500.00
Danny Williams
1300.00
Matthew Casey
1700.00
Kelly Severide
1750.00
我希望这是清楚的,如果不让我知道,我可以尝试澄清。
提前谢谢。
由于这是家庭作业,我不会发布具体的解决方案,但我会发布我将如何做到这一点的想法…
我会:
- 创建2个新的
List
变量-Dim Names as new List(Of String)
&Dim Salaries as new List(Of Double)
- 逐行读取文本文件,给定文件格式,每条偶数行将添加到
Salaries
列表,每条奇数行将添加至Names
列表 - 将每个列表设置为相应列表框的DataSource
希望这能帮助你,至少能让你知道如何继续。
更新:
考虑到你的评论说你想把数据存储在一个类中,你可以按照以下方式做更多的事情:
- 用2个属性和任何其他需要的方法创建类——称之为
EmployeeData
,比如 - 创建
List Of(EmployeeData)
- 在文本文件中一次循环2行(意思是读第一行,捕获名称,读下一行,读工资,然后循环)
- 在每个循环中,一旦您捕获了数据,就向您的列表中添加一个新的
EmployeeData
,其中包含2条捕获的信息 - 编写一小段代码,从EmployeeData列表中仅提取工资或姓名,作为一个新列表,您可以使用该列表绑定到作为数据源的列表框
希望这是有道理的。