文本框在更改源时使用以前的AutoCompleteCustomSource建议

时间:2015-12-10 15:18:47

标签: vb.net

我一直在寻找解决这个问题的方法无济于事。我有一个小的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

1 个答案:

答案 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

嘿嘿,没有更多旧的自动完成建议。