原創(chuàng)|使用教程|編輯:龔雪|2020-01-02 10:02:03.410|閱讀 494 次
概述:DevExpress Winforms Controls 內(nèi)置140多個(gè)UI控件和庫,完美構(gòu)建流暢、美觀且易于使用的應(yīng)用程序,本文將為大家介紹DevExpress Winforms中的自動(dòng)搜索模式。
# 界面/圖表報(bào)表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
相關(guān)鏈接:
下載DevExpress v19.2完整版 DevExpress v19.2漢化資源獲取
DevExpress Winforms Controls 內(nèi)置140多個(gè)UI控件和庫,完美構(gòu)建流暢、美觀且易于使用的應(yīng)用程序。在前面的教程文章中,技術(shù)團(tuán)隊(duì)宣傳了針對(duì)DevExpress LookUpEdit和GridLookUpEdit控件新的AutoSuggest模式。 簡而言之,AutoSuggest允許編輯器執(zhí)行自定義任務(wù)來檢索下拉菜單項(xiàng)(因此編輯器具有虛擬數(shù)據(jù)源,每次用戶在查找文本框中輸入值時(shí),虛擬數(shù)據(jù)源都會(huì)更改)。大多數(shù)人將這個(gè)新功能用于空的、未綁定的編輯器。如果您的查找編輯器綁定到靜態(tài)數(shù)據(jù)源,則源記錄將僅在一種使用情況下顯示:當(dāng)文本框?yàn)榭詹⑶矣脩舭聪孪吕粹o時(shí)。
到目前為止,如果您希望用戶搜索查找記錄,則不得不使用earchLookUpEdit。 該編輯器滿足了業(yè)務(wù)需求,但缺少當(dāng)今用戶對(duì)高級(jí)桌面應(yīng)用程序所期望的一些現(xiàn)代功能。SearchLookUpEdit帶有”locked”文本框,該文本框不允許用戶通過鍵盤輸入文本值,該文本框不允許用戶通過鍵盤輸入文本值。為了找到記錄,它激活了一個(gè)下拉面板,并允許用戶在其嵌入式查找面板中輸入搜索條件。
使用v19.2,您能夠?qū)ookUpEdit \ GridLookUpEdit編輯器綁定到數(shù)據(jù)源,將Properties.SearchMode更改為AutoSearch和voila:使用戶能夠在編輯器的文本框中輸入搜索值——匹配的記錄將自動(dòng)顯示在查找的下拉菜單中。
每當(dāng)實(shí)施一項(xiàng)新功能時(shí),技術(shù)團(tuán)隊(duì)都會(huì)竭盡所能將核心功能擴(kuò)展到多個(gè)產(chǎn)品中。例如,這項(xiàng)新的自動(dòng)搜索功能將接受Find Panel所使用的相同語法。
就像AutoSuggest一樣,當(dāng)用戶輸入文本值時(shí),AutoSearch會(huì)觸發(fā)自己的事件(AutoSearch事件)。 盡管您不需要處理事件(一切都可以直接使用),但已為您提供了在需要時(shí)進(jìn)行處理的功能。例如您可以在事件處理程序中使用e.SetParameters方法來微調(diào)搜索結(jié)果,此方法接受兩個(gè)參數(shù),這些參數(shù)類似于WinForms數(shù)據(jù)感知控件中顯示的Find Panels所使用的ParserKind和Condition屬性:
using DevExpress.Data.Filtering; private void LookUpEdit1_AutoSearch(object sender, LookUpEditAutoSearchEventArgs e) { e.SetParameters(FindPanelParserKind.And, FilterCondition.StartsWith); }
由于AutoSuggest和AutoSearch事件的參數(shù)均來自同一基類,因此適用自定義突出顯示API,下面的示例說明了如何在與文本框中輸入的值匹配時(shí)突出顯示整個(gè)數(shù)據(jù)字段值。
private void LookUpEdit1_AutoSearch(object sender, LookUpEditAutoSearchEventArgs e) { e.SetParameters(FindPanelParserKind.And, FilterCondition.StartsWith); e.SetHighlightRanges(CustomHightlight(e.Text)); } static Func<string, string, DisplayTextHighlightRange[]> CustomHightlight(string userText) { return (displayText, fieldName) => { if (fieldName == "ShipCity" || fieldName == "ShipCountry") { if (displayText.StartsWith(userText)) return new DisplayTextHighlightRange[] { new DisplayTextHighlightRange(0, displayText.Length) }; } return null; }; }
DevExpress v19.2全新發(fā)布,歡迎下載最新版體驗(yàn)哦~
DevExpress中文網(wǎng)官網(wǎng)QQ群:540330292 歡迎一起進(jìn)群討論
掃描關(guān)注DevExpress中文網(wǎng)微信公眾號(hào),及時(shí)獲取最新動(dòng)態(tài)及最新資訊
本站文章除注明轉(zhuǎn)載外,均為本站原創(chuàng)或翻譯。歡迎任何形式的轉(zhuǎn)載,但請(qǐng)務(wù)必注明出處、不得修改原文相關(guān)鏈接,如果存在內(nèi)容上的異議請(qǐng)郵件反饋至chenjj@ke049m.cn
文章轉(zhuǎn)載自:慧都網(wǎng)