DevExpress Winforms使用技巧教程:查找編輯器-自動搜索模式
下載DevExpress v19.2完整版 DevExpress v19.2漢化資源獲取
DevExpress Winforms Controls 內置140多個UI控件和庫,完美構建流暢、美觀且易于使用的應用程序。在前面的教程文章中,技術團隊宣傳了針對DevExpress LookUpEdit和GridLookUpEdit控件新的AutoSuggest模式。 簡而言之,AutoSuggest允許編輯器執(zhí)行自定義任務來檢索下拉菜單項(因此編輯器具有虛擬數(shù)據(jù)源,每次用戶在查找文本框中輸入值時,虛擬數(shù)據(jù)源都會更改)。大多數(shù)人將這個新功能用于空的、未綁定的編輯器。如果您的查找編輯器綁定到靜態(tài)數(shù)據(jù)源,則源記錄將僅在一種使用情況下顯示:當文本框為空并且用戶按下下拉按鈕時。
到目前為止,如果您希望用戶搜索查找記錄,則不得不使用earchLookUpEdit。 該編輯器滿足了業(yè)務需求,但缺少當今用戶對高級桌面應用程序所期望的一些現(xiàn)代功能。SearchLookUpEdit帶有”locked”文本框,該文本框不允許用戶通過鍵盤輸入文本值,該文本框不允許用戶通過鍵盤輸入文本值。為了找到記錄,它激活了一個下拉面板,并允許用戶在其嵌入式查找面板中輸入搜索條件。
使用v19.2,您能夠將LookUpEdit \ GridLookUpEdit編輯器綁定到數(shù)據(jù)源,將Properties.SearchMode更改為AutoSearch和voila:使用戶能夠在編輯器的文本框中輸入搜索值——匹配的記錄將自動顯示在查找的下拉菜單中。
每當實施一項新功能時,技術團隊都會竭盡所能將核心功能擴展到多個產品中。例如,這項新的自動搜索功能將接受Find Panel所使用的相同語法。
就像AutoSuggest一樣,當用戶輸入文本值時,AutoSearch會觸發(fā)自己的事件(AutoSearch事件)。 盡管您不需要處理事件(一切都可以直接使用),但已為您提供了在需要時進行處理的功能。例如您可以在事件處理程序中使用e.SetParameters方法來微調搜索結果,此方法接受兩個參數(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ù)據(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ā)布,歡迎下載最新版體驗哦~
DevExpress中文網(wǎng)官網(wǎng)QQ群:540330292 歡迎一起進群討論
掃描關注DevExpress中文網(wǎng)微信公眾號,及時獲取最新動態(tài)及最新資訊