【发布时间】:2019-01-23 10:26:12
【问题描述】:
我还是 VB.Net 的新手,并且已经坚持了一个多小时。我正在尝试创建一个库存管理系统,其中会打开一个表单供用户输入 pc 规格,当我单击保存时,将保存到文本文件,以便将其读入 Inventory Tracker 屏幕。每个文本框都被禁用并在更新时附加文本。
目前什么都没有发生,我已经在与项目相同的目录中创建了文本文件。为什么是这样?
我还尝试在文本文件中放置一条测试消息以显示在跟踪器文本框中,这就是我保存规格时会发生的情况,但是没有出现任何消息?
frmItemEntry.vb
Private Sub btnSave_Click(sender As Object, e As EventArgs) Handles btnSave.Click
Dim objMyStreamReader As System.IO.StreamReader
Dim objMyStreamWriter As System.IO.StreamWriter = System.IO.File.CreateText("inventory.txt")
Dim strInventory As String
objMyStreamWriter.WriteLine(txtManufacturerEntry)
objMyStreamWriter.WriteLine(txtProcessorEntry)
objMyStreamWriter.WriteLine(txtVideoEntry)
objMyStreamWriter.WriteLine(txtFormEntry)
objMyStreamWriter.WriteLine(txtRamEntry)
objMyStreamWriter.WriteLine(txtVramEntry)
objMyStreamWriter.WriteLine(txtHdEntry)
objMyStreamWriter.WriteLine(chkWirelessEntry)
objMyStreamWriter.Close()
Me.Close()
End Sub
frmTracker.vb
Private Sub txtManufacturer_TextChanged(sender As Object, e As EventArgs) Handles txtManufacturer.TextChanged
Dim streamReader As New System.IO.StreamReader("inventory.txt")
Dim strInventory As String
streamReader = System.IO.File.OpenText("inventory.txt")
strInventory = streamReader.ReadLine
txtManufacturer.AppendText(strInventory)
End Sub
【问题讨论】:
-
你做了什么调试?您是否逐行浏览代码以查看发生了什么以及当时的变量值是什么?您的事件处理程序肯定在运行吗?您是否收到任何错误或异常?如果您能对我们说的最好的结果是“什么都没有发生”,那么通常这意味着您还没有完全调查这个问题。
-
您能否澄清一下您期望发生的事情不会发生?目前您正在做三件事:1) 将数据写入文件,2) 从该文件中读取数据,以及 3) 在应用程序中输出所述数据 - 其中哪一项不起作用?
-
您确定查看的是正确的文件吗?当您在 VS 中构建和运行 .NET 项目时,它会将代码编译为项目下的子文件夹中的二进制格式(通常是
bin\Debug,在您处于调试模式时),并在那里复制所有相关的人工制品,例如文本文件 - 类似于将最终的可执行文件部署到它将真正运行的地方。这成为程序运行时的根目录。我建议检查它是否真的在更新 that 子目录中的文件副本,而不是在您的源代码所在的文件夹中。 -
您可以通过仅将文本框的 Text 属性保存到文件中来做到这一点,而不是整个文本框对象。一个文本框consists of a lot more 而不仅仅是写在框中的文本!
-
你应该使用
txtManufacturerEntry.Text等等
标签: .net vb.net visual-studio-debugging