Vb.net复选框无法从文本文件加载

时间:2014-11-23 18:57:48

标签: vb.net loading

我尝试从VB.NET中的文本文件中加载一个复选框,作为我的应用程序的设置表单的一部分。我使用了这段代码:

Sub loadfiles()
    Dim read As System.IO.StreamReader

    read = My.Computer.FileSystem.OpenTextFileReader("C:\Users\Public\Documents\procrastinGONEnotif.txt")
    Dim text As String = read.ReadToEnd()
    read.Close()
    If text = "false" Then
        CheckBox1.Checked = False
    Else
        If text = "true" Then
            CheckBox1.Checked = True
        Else
            MessageBox.Show("ERROR!")
        End If
    End If
End Sub

文件保存代码就在这里:

Dim write As System.IO.StreamWriter
write = My.Computer.FileSystem.OpenTextFileWriter("C:\Users\Public\Documents\procrastinGONEnotif.txt", False)
If CheckBox1.Checked = True Then
    write.WriteLine("true")
Else
    write.WriteLine("false")
End If
write.Close()

文件应该在表单启动时加载,并在按下按钮时保存。但是,表单不会加载文件,即使它存在并包含" true"或"假"。相反,代码将其检测为"既不是真的也不是假的。并发送消息" ERROR!",我将其添加到应用程序中以测试它是否实际读取该文件。

2 个答案:

答案 0 :(得分:0)

问题是当您读取/写入值false时。输出文件中false后面有换行符,当您打开文本文件或最初将其读入text时,该换行符可见。一个简单的解决方案是简单地使用read.ReadToEnd().Trim()删除额外的空白字符。

您还可以将嵌套的If...Else合并到If...ElseIf...Else中,以减少您的代码混淆。

Sub loadfiles()
    Dim read As System.IO.StreamReader
    read = My.Computer.FileSystem.OpenTextFileReader("C:\Users\Public\Documents\procrastinGONEnotif.txt")
    Dim text As String = read.ReadToEnd().Trim()
    read.Close()
    If text = "false" Then
        CheckBox1.Checked = False
    ElseIf text = "true" Then
        CheckBox1.Checked = True
    Else
        MessageBox.Show("ERROR!")
    End If
End Sub

答案 1 :(得分:0)

您可以将整个代码缩短到此

加载:

CheckBox1.Checked = Convert.ToBoolean(System.IO.File.ReadAllText("FILE_PATH"))

保存

IO.File.WriteAllText("FILE_PATH", Convert.ToString(CheckBox1.Checked))