Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/search/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
vb.net保存文本框值供以后使用_Vb.net_Search_Textbox - Fatal编程技术网

vb.net保存文本框值供以后使用

vb.net保存文本框值供以后使用,vb.net,search,textbox,Vb.net,Search,Textbox,我在表单中使用文本框搜索pdf文件中的单词。我想把这些搜索词保存在某个地方供以后使用。因此,当用户在textbox中键入字母时,会出现一个包含先前搜索单词的下拉列表。类似于windows在资源管理器中的操作 有人举过一个例子吗?或者有人对此很熟悉吗?我发现了一些代码,我根据自己的需要进行了修改。当我单击提交按钮时,它会将ComboBox1的内容保存到文本文件中。当我加载表单时,文本文件被读取并加载到ComboBox1中,与以前使用的搜索一样 'now save the search wor

我在表单中使用
文本框
搜索pdf文件中的单词。我想把这些搜索词保存在某个地方供以后使用。因此,当用户在
textbox
中键入字母时,会出现一个包含先前搜索单词的下拉列表。类似于windows在资源管理器中的操作

有人举过一个例子吗?或者有人对此很熟悉吗?

我发现了一些代码,我根据自己的需要进行了修改。当我单击提交按钮时,它会将ComboBox1的内容保存到文本文件中。当我加载表单时,文本文件被读取并加载到ComboBox1中,与以前使用的搜索一样

   'now save the search word to our textfile
    PresetName = TextBoxFreeText.Text
    If PresetName <> "" Then
        TextBoxFreeText.Items.Add(PresetName)
        Call SaveData(PresetName)
    End If
保存ComboBox1内容的代码

Private Sub SaveData(ByVal PresetName As String)
        Dim FileString As String = PresetName & ","
        'Build File String

        FileString &= TextBoxFreeText.Text & ","
        listPreset.Add(FileString)
        myWriter = New StreamWriter(FilePath)
        For i = 0 To listPreset.Count - 1
            myWriter.WriteLine(listPreset.Item(i))
        Next
        myWriter.Close()

    End Sub
还有两件事我想改变。我将提出一个新问题

  • 防止在文本文件中输入重复的搜索字符串
  • 为ComboBox1中加载的搜索字符串设置最大值(可能为10个单词)
  • 我找到了一些我根据需要修改的代码。当我单击提交按钮时,它会将ComboBox1的内容保存到文本文件中。当我加载表单时,文本文件被读取并加载到ComboBox1中,与以前使用的搜索一样

       'now save the search word to our textfile
        PresetName = TextBoxFreeText.Text
        If PresetName <> "" Then
            TextBoxFreeText.Items.Add(PresetName)
            Call SaveData(PresetName)
        End If
    
    保存ComboBox1内容的代码

    Private Sub SaveData(ByVal PresetName As String)
            Dim FileString As String = PresetName & ","
            'Build File String
    
            FileString &= TextBoxFreeText.Text & ","
            listPreset.Add(FileString)
            myWriter = New StreamWriter(FilePath)
            For i = 0 To listPreset.Count - 1
                myWriter.WriteLine(listPreset.Item(i))
            Next
            myWriter.Close()
    
        End Sub
    
    还有两件事我想改变。我将提出一个新问题

  • 防止在文本文件中输入重复的搜索字符串
  • 为ComboBox1中加载的搜索字符串设置最大值(可能为10个单词)

  • 可以在类型为属性数据源的应用程序设置条目中存储和检索搜索词列表

    添加新条目

    • 项目菜单中选择
      YourAppName
      属性
    • 选择设置选项卡
    • Name列中添加新条目,例如:SearchWords
    • 类型列中,选择System.Collections.Specialized.StringCollection
    • 关闭对话框并保存
    检索搜索词

    在窗体的构造函数或
    Load
    事件中,假设您有一个名为
    txtSearch
    的搜索
    TextBox

    '+
    导入系统
    导入System.Collections.Specialized
    Private Sub YourForm_Load(发送者作为对象,e作为事件参数)处理MyBase.Load
    如果My.Settings.SearchWords是空的,那么
    My.Settings.SearchWords=新建StringCollection
    如果结束
    Dim acc作为新的AutoCompleteTestringCollection
    acc.AddRange(My.Settings.SearchWords.Cast(字符串的).ToArray())
    txtSearch.AutoCompleteMode=AutoCompleteMode.Suggest
    txtSearch.AutoCompleteSource=AutoCompleteSource.CustomSource
    txtSearch.AutoCompleteCustomSource=acc
    端接头
    
    更新收藏

    执行搜索时,您需要添加新词:

    当您单击搜索按钮时。。。 私有子BTN搜索\单击(发件人作为对象,e作为事件参数)处理BTN搜索。单击 AddSearchWord() 端接头 '如果在按Enter键时调用搜索例程。。。 私有子txtSearch_KeyDown(发送方作为对象,e作为KeyEventArgs)处理txtSearch.KeyDown 如果e.KeyCode=Keys,则输入 AddSearchWord() 如果结束 端接头 '更新集合。。。 私有子AddSearchWord() 如果txtSearch.Text.Trim.Length=0,则返回 如果不是txtSearch.AutoCompleteCustomSource.Contains(txtSearch.Text),则 如果txtSearch.AutoCompleteCustomSource.Count>10,则 txtSearch.AutoCompleteCustomSource.RemoveAt( txtSearch.AutoCompleteCustomSource.Count-1) 如果结束 txtSearch.AutoCompleteCustomSource.Insert(0,txtSearch.Text) 如果结束 端接头 保存收藏

    关闭表单时更新
    SearchWord
    字符串集合:

    Private Sub YourForm\u FormClosing(发送者作为对象,e作为FormClosingEventArgs)处理MyBase.FormClosing
    My.Settings.SearchWords=新建StringCollection
    My.Settings.SearchWords.AddRange(txtSearch.AutoCompleteCustomSource.Cast(字符串的).ToArray)
    My.Settings.Save()
    端接头
    
    演示


    您可以在类型为属性数据源的应用程序设置条目中存储和检索搜索词列表

    添加新条目

    • 项目菜单中选择
      YourAppName
      属性
    • 选择设置选项卡
    • Name列中添加新条目,例如:SearchWords
    • 类型列中,选择System.Collections.Specialized.StringCollection
    • 关闭对话框并保存
    检索搜索词

    在窗体的构造函数或
    Load
    事件中,假设您有一个名为
    txtSearch
    的搜索
    TextBox

    '+
    导入系统
    导入System.Collections.Specialized
    Private Sub YourForm_Load(发送者作为对象,e作为事件参数)处理MyBase.Load
    如果My.Settings.SearchWords是空的,那么
    My.Settings.SearchWords=新建StringCollection
    如果结束
    Dim acc作为新的AutoCompleteTestringCollection
    acc.AddRange(My.Settings.SearchWords.Cast(字符串的).ToArray())
    txtSearch.AutoCompleteMode=AutoCompleteMode.Suggest
    txtSearch.AutoCompleteSource=AutoCompleteSource.CustomSource
    txtSearch.AutoCompleteCustomSource=acc
    端接头
    
    更新收藏

    执行搜索时,您需要添加新词:

    当您单击搜索按钮时。。。 私有子BTN搜索\单击(发件人作为对象,e作为事件参数)处理BTN搜索。单击 AddSearchWord() 端接头 '如果在按Enter键时调用搜索例程。。。 私有子txtSearch_KeyDown(发送方作为对象,e作为KeyEventArgs)处理txtSearch.KeyDown 如果e.KeyCode=Keys,则输入 AddSearchWord() EN