我正在寻找一个用于文本控件的自动完成支持的库,它可以记住用户的所有先前条目并为其提供自动完成支持。
例如,对于“最近的文件”,我使用http://www.genghisgroup.com/并且效果很好。你为此目的知道这样的事吗?
UPDATE:这是一个.NET Winforms应用程序,我正在使用普通的文本控件。
答案 0 :(得分:1)
内置于.NET TextBox中的是自动完成功能。首先设置AutoCompleteMode属性(Suggest,Append等),然后选择AutoCompleteSource。您的选择是:
文件系统 HistoryList RecentlyUsedList AllUrl AllSystemSources FileSystemDirectories CustomSource 没有 listItems中
在您的情况下,您将使用CustomSource,然后填充TextCo上属性的AutoCompleteCustomSource集合。我建议有一个简单的SqlCe数据库,在那里你可以存储用户过去输入的值,然后当应用程序加载时,检索这些值,并填充AutoCompleteCustomSource。
快速代码示例:
private void button1_Click(object sender, EventArgs e)
{
this.textBox1.AutoCompleteMode = AutoCompleteMode.Suggest;
this.textBox1.AutoCompleteSource = AutoCompleteSource.CustomSource;
string[] items = GetListForCustomSource();
this.textBox1.AutoCompleteCustomSource.AddRange(items);
}
private string[] GetListForCustomSource()
{
var result = new List<string>();
foreach(var value in Enum.GetNames(typeof(DayOfWeek)))
{
result.Add(value);
}
return result.ToArray();
}
我使用DayOfWeek作为示例,但您可以在该方法中查询数据库,并返回结果。
答案 1 :(得分:0)
下载源代码并查看最近的文件。毫无疑问,它存储到某种形式的持久存储(数据库,文件等)并使用该信息填写列表。你只需要使用功能,并将其用于专注于单词而不是文件的TextBox。
我没有看过Genghis的来源,但我确信它很容易通过你使用的具有类似功能的控件来运行它。执行此操作时,请联系Genghis小组并将其作为提交内容提供。这就是我们支持开源的方式。