基于先前用户输入值的文本控件中用于自动完成自动完成的库或代码片段


0

我正在寻找一个文本控件自动完成支持库,它记录用户的所有以前的条目并为其提供自动完成支持。

例如对于“最近的文件”,我使用http://www.genghisgroup.com/,它很好。你知道这样的事吗?

更新:这是一个.NET Winforms应用程序,我使用正常的文本控制。

  0

从链接听起来像WinForms? 22 2月. 092009-02-22 14:30:15

  0

是的,更新了这个问题。 22 2月. 092009-02-22 14:45:14

1

内置到.NET TextBox中的是自动完成功能。首先设置AutoCompleteMode属性(建议,追加等),然后选择AutoCompleteSource。您选择的是:

文件系统 HistoryList RecentlyUsedList AllUrl AllSystemSources FileSystemDirectories CustomSource 无 listItems中

在你的情况,你会使用CustomSource,然后填充AutoCompleteCustomSource集合,这是一个属性在TextBox上。我建议拥有一个简单的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(); 
} 

我仅仅指刚使用星期几作为一个例子,但可以在该方法查询数据库,并返回结果。

  0

我会试一试。将它们存储在“应用程序设置”中怎么样?这应该适用于最近的20个条目左右。 22 2月. 092009-02-22 17:07:00

  0

哦,如果你只想存储20个左右,那么是的,你不需要一个完整的分贝。应用程序设置,或只是一个普通的XML文件将会很好。 22 2月. 092009-02-22 18:48:19


0

下载源代码并查看最近的文件。毫无疑问,它正在存储到某种形式的持久性存储(数据库,文件等)并使用该信息来填充列表。您只需调用功能并将其设置为专注于单词而非文件的TextBox。

我还没有看过成吉思的源代码,但我相信很容易就可以通过你使用的具有类似功能和控制它的控件来运行。当你这样做的时候,联系成吉思的团队,并把它作为提交。这就是我们如何支持开源。