DevExpress Winforms使用技巧教程:查找編輯器-自動(dòng)建議
下載DevExpress v19.2完整版 DevExpress v19.2漢化資源獲取
DevExpress Winforms Controls 內(nèi)置140多個(gè)UI控件和庫(kù),完美構(gòu)建流暢、美觀且易于使用的應(yīng)用程序。在本文中,小編將為大家介紹WinForms Lookup Editors控件的一些功能,并說(shuō)明如何為下一個(gè)WinForms項(xiàng)目選擇適當(dāng)?shù)腤inForms查找。
已發(fā)布的v19.2版本將為L(zhǎng)ookUpEdit和GridLookupEdit控件(自動(dòng)建議)包含一個(gè)很棒的新功能。 在解釋此新功能之前,現(xiàn)將其與現(xiàn)有的自動(dòng)完成模式區(qū)分開,可以使用組件的SearchMode屬性啟用自動(dòng)完成功能。處于激活狀態(tài)時(shí),自動(dòng)完成功能將強(qiáng)制綁定查詢編輯器查找與用戶輸入的文本匹配的記錄,并顯示其在查詢中找到的第一項(xiàng):
要激活自動(dòng)建議,您需要將SearchMode設(shè)置為AutoSuggest。 與AutoComplete(在數(shù)據(jù)綁定的查找中隱藏不匹配的記錄)不同,AutoSuggest在用戶輸入文本時(shí)動(dòng)態(tài)更改編輯器的數(shù)據(jù)源(因此,它可以與完全空的、未綁定的編輯器一起使用)。
每次用戶輸入新字符時(shí),查找編輯器都會(huì)觸發(fā)AutoSuggest事件。 必須處理此事件并為其分配一個(gè)自定義的System.Threading.Tasks.Task對(duì)象。 此異步可取消任務(wù)必須返回記錄的集合,這些記錄將被視為編輯器源。
lookUpEdit1.AutoSuggest += OnAutoSuggest; void OnAutoSuggest(object sender, LookUpEditAutoSuggestEventArgs e) { // Set delay (if needed) e.SetMinimumAnimationDuration(TimeSpan.FromMilliseconds(1000)); // Assign a Task that return suggestions e.QuerySuggestions = WorldCities.QueryAsync(e.Text, e.CancellationToken); }
實(shí)施Task的方式完全取決于您:在演示中,將解析一個(gè)巨大的本地存儲(chǔ)的Excel文件。 您可以從數(shù)據(jù)庫(kù)文件檢索數(shù)據(jù),也可以發(fā)送SQL查詢并從遠(yuǎn)程服務(wù)器檢索記錄。
當(dāng)查找獲得下拉項(xiàng)目時(shí),編輯器將掃描這些記錄并突出顯示與用戶文本匹配的項(xiàng)目標(biāo)題的所有部分。 此默認(rèn)邏輯涵蓋了許多簡(jiǎn)單的場(chǎng)景,但是如果需要,您可以自由實(shí)施自定義突出顯示模式。
在演示中,“Enter the city name” 查找由一個(gè)任務(wù)填充,該任務(wù)搜索城市和州名稱中的匹配項(xiàng)。 但是,查找記錄也包含國(guó)家/地區(qū)名稱。 默認(rèn)的突出顯示模式不適合這樣的情況,因?yàn)樗怀鲲@示了國(guó)家名稱中的字符(Task忽略了這些字符)。
要解決此不匹配問題,將自定義方法分配給SetHighlightRanges事件參數(shù)。
void OnAutoSuggest(object sender, LookUpEditAutoSuggestEventArgs e) { //... // Set Custom Highlight Strategy e.SetHighlightRanges(HighlightTags(e.Text)); }
DevExpress v19.2全新發(fā)布,歡迎下載最新版體驗(yàn)哦~
DevExpress技術(shù)交流群:540330292 歡迎一起進(jìn)群討論
掃描關(guān)注DevExpress中文網(wǎng)微信公眾號(hào),及時(shí)獲取最新動(dòng)態(tài)及最新資訊