2009-06-03 61 views
3

我有一個應用程序使用自動完成的很多TextBox控件。每個人都使用AutoCompleteMode.CustomSource從關聯的AutoCompleteStringCollection中獲取自動完成文本。如何使TextBox的自動完成列表可編輯?

只要用戶在TextBox中輸入新值,就會將其添加到關聯的AutoCompleteStringCollection,並且在會話結束時,所有這些集合都會持久保存到用戶主目錄中的文件中。

問題是沒有辦法糾正這些集合中的錯誤。在IE中,使用自動完成控件的輸入控件可以滾動到自動完成列表中的一個項目,然後按Del將其刪除。這在.NET控件中不起作用。

我真的很想避免爲此實現我自己的用戶界面。我卡住了嗎?有沒有一種方法可以讓我看不到?

+0

請原諒我的天真,但你如何得到這些建議?我唯一的開發自動完成的經驗是通過ASP.NET AJAX工具包,並且由於該組件從web服務獲得建議,所以我認爲無法對其進行編輯。 但當然,我可能是錯的。 – 2009-06-03 22:25:51

+0

他使用的是Windows窗體,而不是ASP.NET,它具有內置支持自動完成功能的各種來源 – 2009-06-04 00:55:00

回答

2

開箱即用,不幸的是,沒有任何事情可以爲你做。我嘗試了P /調用基本的FindWindowEx/EnumChildWindows來查看是否可以得到一個Handle到實際的下拉菜單,但是不成功(如果有人確實設法解決這個問題,請告訴我!)。好消息是(不太好,但並不可怕)自動完成實際上並不是你完全必須實現的東西,實際上有一個名爲SHAutoComplete的Win32函數,可以通過P /調用來幫助你完成自動完成。不要太激動,因爲它不像P/Invoking和簡單。然而,有一個偉大的CodeProject article應該可以幫助你。

相關問題