2014-11-23 70 views
0

我試圖從VB.NET中的文本文件加載複選框,作爲我的應用程序設置表單的一部分。我用這段代碼: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」或「false」,表單也不會加載文件。相反,代碼將其檢測爲「既不是真或假」,併發送消息「錯誤!」,我將它添加到應用程序中以測試它是否實際讀取文件。

+2

設置斷點並調試它;如果只有一個設置,請考慮查看「My.Settings」 – Plutonix 2014-11-23 18:59:12

回答

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 
0

您可以縮短整個代碼這個

對於加載:

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

爲了節省

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