2009-02-22 16 views
0

我正在尋找一個文本控件自動完成支持庫,它記錄用戶的所有以前的條目併爲其提供自動完成支持。基於先前用戶輸入值的文本控件中用於自動完成自動完成的庫或代碼片段

例如對於「最近的文件」,我使用http://www.genghisgroup.com/,它很好。你知道這樣的事嗎?

更新:這是一個.NET Winforms應用程序,我使用正常的文本控制。

+0

從鏈接聽起來像WinForms? – Richard 2009-02-22 14:30:15

+0

是的,更新了這個問題。 – 2009-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

下載源代碼並查看最近的文件。毫無疑問,它正在存儲到某種形式的持久性存儲(數據庫,文件等)並使用該信息來填充列表。您只需調用功能並將其設置爲專注於單詞而非文件的TextBox。

我還沒有看過成吉思的源代碼,但我相信很容易就可以通過你使用的具有類似功能和控制它的控件來運行。當你這樣做的時候,聯繫成吉思的團隊,並把它作爲提交。這就是我們如何支持開源。

相關問題