我一直在寻找解决这个问题的方法无济于事。我有一个小的VB.net程序,允许用户更改表单上文本框的自动完成源文件。如果加载时未选择自动完成文件,程序会让您选择一个。
如果在已经存在自动完成文件的情况下选择了新文件,则文本框将使用两者的建议,直到程序重新启动,并且仅使用新选择的文件开始。有没有办法阻止这种行为?
以下是选择文件的代码:
Dim fd As OpenFileDialog = New OpenFileDialog()
fd.Title = "Select a file..."
fd.InitialDirectory = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments)
fd.Filter = "Text files (*.txt)|*.txt"
fd.RestoreDirectory = True
If fd.ShowDialog() = DialogResult.OK Then
My.Settings.streamerFileLocation = fd.FileName
Call Form1_Load(Me, e)
stream1Textbox.Text = ""
stream2Textbox.Text = ""
stream3Textbox.Text = ""
stream4Textbox.Text = ""
End If
它所调用的Form1_Load子的相关部分:
Using reader As New System.IO.StreamReader(My.Settings.streamerFileLocation)
While Not reader.EndOfStream
autocompleteList.Add(reader.ReadLine())
End While
End Using
stream1Textbox.AutoCompleteCustomSource = autocompleteList
stream2Textbox.AutoCompleteCustomSource = autocompleteList
stream3Textbox.AutoCompleteCustomSource = autocompleteList
stream4Textbox.AutoCompleteCustomSource = autocompleteList
答案 0 :(得分:0)
一位朋友帮助我解决了 - 无论出于何种原因,程序仍然在文件更改之间的旧条目上。在While循环之前添加在 autocompleteList.Clear()中:
Using reader As New System.IO.StreamReader(My.Settings.streamerFileLocation)
autocompleteList.Clear() // THIS LINE
While Not reader.EndOfStream
autocompleteList.Add(reader.ReadLine())
End While
End Using
嘿嘿,没有更多旧的自动完成建议。