【发布时间】:2016-09-23 13:32:48
【问题描述】:
我写了一个函数,在接收到文本后,返回结果的建议/相似词。返回字符串列表。我将此功能与文本框 TEXT 更改连接。
例如,当我将 car 放入文本框时,我的函数将返回带有 cars、mars 的字符串列表(mars是相似词,sb 可能打错了)。
我想制作类似 autocompletemoe.suggest 的东西,但文本框应该显示此列表中的每个单词,而不仅仅是相同的字母。
例如:
它应该如何工作? 当我把车放进文本框时 TEXTBOX 应该为我建议:cars、mars
它是如何工作的? 当我把车放进文本框时 TEXTBOX 只为我推荐汽车
我有
my_textbox.AutoCompleteCustomSource = my_AutoCompleteStringCollection;
my_textbox.AutoCompleteSource = AutoCompleteSource.CustomSource;
my_textbox.AutoCompleteMode = AutoCompleteMode.Suggest
嗯,也许我会用其他方式来描述它。 让我们假设该方法
List<String> GiveSimmilar(string ABC_word)
exist 并且它将所有相似的单词返回给'ABC_word'。 我有一个名为“query_text”的文本框控件。 MainForm 中的代码片段
private AutoCompleteStringCollection suggestions;
private void Main_Form_Load(object sender, EventArgs e){
// ...
suggestions = new AutoCompleteStringCollection();
query_text.AutoCompleteCustomSource = suggestions;
query_text.AutoCompleteSource = AutoCompleteSource.CustomSource;
query_text.AutoCompleteMode = AutoCompleteMode.Suggest;
// ...
}
private void query_text_TextChanged(object sender, EventArgs e){
suggestions.Clear();
if(string.IsNullOrWhiteSpace(query_text)) return;
List<string> suggest = GiveSimmilar(query_text.Text);
foreach (string sug in suggest){
suggestions.Add(sug);
Console.WriteLine(sug);
}
}
【问题讨论】:
-
您在文本中的哪个位置开始搜索?似乎在第一个字符上发生了类似的搜索,因此在寻找 c... 而不是该字母之后的任何内容。您能否分享您的自动完成代码,以便我们进一步帮助您
-
AutoComplete 是TextBox 控件的一个内置方法。它的工作原理是只显示列表中具有相同先前字母的单词。我想显示列表中的所有单词,但我不知道该怎么做:D
标签: c# textbox lucene controls