2016-08-07 132 views
0

我有一個程序的問題,所以 我正在爲我的XP覆蓋東西做一個記事本程序,每當我重新打開它兩次,文本是重複的。Visual Basic 2013文本複製

例如,當我在

test 

型和我第二次重新打開它,它輸出:

testtest 

我不知道是什麼原因造成這一點,但它肯定是煩人。 如果我能得到一些幫助,這個問題將會非常棒! 繼承人我的代碼:

Private Sub notepad_X_Click(sender As Object, e As EventArgs) Handles notepad_X.Click 

    Try 
     My.Computer.FileSystem.WriteAllText("C:\XP\notepad.txt", RichTextBox1.Text, True) 
     RichTextBox1.Text = "" 
    Catch Exc As System.IO.DirectoryNotFoundException 
     My.Computer.FileSystem.CreateDirectory("C:\XP") 
    End Try 

    notepad.Enabled = False 
    notepad.Visible = False 
End Sub 

Private Sub Notepad_btn_Click(sender As Object, e As EventArgs) Handles StartM_Notepad.Click 
    RichTextBox1.Text = "" 
    Try 
     RichTextBox1.Text = My.Computer.FileSystem.ReadAllText("C:\XP\notepad.txt") 
    Catch Exc As System.IO.DirectoryNotFoundException 
     My.Computer.FileSystem.CreateDirectory("C:\XP") 
    End Try 
    notepad.Enabled = True 
    notepad.Visible = True 

End Sub 

回答

0

這是因爲您已明確指定它這樣做。您正在使用FileSystem.WriteAllText() overload with 3 parameters,您已將第三個參數設置爲True。該參數(稱爲append)指定是否要附加文本到您的文件或覆蓋它。

正如您所說的將文本追加到您的文件中,它只會在已經存在的文本後面寫入新文本(無論是在RichTextBox1之內)。設置參數爲False,以便文本被覆蓋,而不是:

My.Computer.FileSystem.WriteAllText("C:\XP\notepad.txt", RichTextBox1.Text, False) 
+0

謝謝,我接着說的教程說它是真實的,但謝謝!經過測試,它完全正常工作。 – cake2

+0

@ cake2:很高興聽到!如有可能,請按下左邊的複選標記將我的帖子標記爲已接受的答案(通常您在提問後等待15分鐘)。 - 將帖子標記爲已接受的答案將標記問題已解決,答案者將獲得15點聲望點,問題提問者將獲得2點聲望點。 –

+0

是的,我不得不等待幾分鐘,但它現在都很好 – cake2