Dim FormOpen As String = My.Computer.FileSystem.ReadAllText("C:\AndTime\OpenForm1")
TextBox1.Text = FormOpen
If FormOpen = "1" Then
Form1.Show()
End If
我放入“ TextBox1.Text = FormOpen”来测试文件是否正确读取,即文本框显示“ 1”,在“ 1”之前或之后没有任何空格或任何其他导管。
因此,问题一定与if语句有关
答案 0 :(得分:0)
Dim FormOpen As String = My.Computer.FileSystem.ReadAllText("C:\AndTime\OpenForm1")
TextBox1.Text = FormOpen
If FormOpen = "1" Then
Form1.Show()
End If
ReadAllText()
的参数必须是完整的路径和文件名。如果文件具有扩展名,则必须存在该扩展名。如果文件为OpenForm1.txt
,并且位于C:驱动器上名为“ AndTime”的目录中,则字符串必须为"C:\AndTime\OpenForm1.txt"
If FormOpen = "1" Then
仅当文件的全部内容为单个字符“ 1”时,才为真。如果文件包含更多或更少的字符或非1的字符,则它将不匹配。
生活中我可以保证的几件事之一是“ =”没有损坏。如果返回“ false”,则唯一的原因是两件事不相等。
此外,作为一般的编程说明:“使用有意义的标识符”。 “ FormOpen”听起来像是事件或属性,而不是文件内容,并且对任何读取您的代码的人都造成混淆。
例如,您可以将其命名为FileContents,这样可以使其含义明确。
答案 1 :(得分:-1)
您未指定编码。因此它默认使用UTF-8,但是如果使用记事本之类的东西来创建它,则编码可能会关闭。
https://docs.microsoft.com/en-us/dotnet/api/microsoft.visualbasic.fileio.filesystem.readalltext
尝试使用ASCII,如上面链接中的示例所示,看看是否可以解决问题。如果是这样,那么只需确保您使用相同的编码来读取用于写入文件的文件即可。