彩票走势图

DevExpress Winforms使用技巧教程:查找编辑器-自动搜索模式

原创|使用教程|编辑:龚雪|2020-01-02 10:02:03.410|阅读 391 次

概述:DevExpress Winforms Controls 内置140多个UI控件和库,完美构建流畅、美观且易于使用的应用程序,本文将为大家介绍DevExpress Winforms中的自动搜索模式。

# 慧都年终大促·界面/图表报表/文档/IDE等千款热门软控件火热促销中 >>

相关链接:

下载DevExpress v19.2完整版    DevExpress v19.2汉化资源获取

DevExpress Winforms Controls 内置140多个UI控件和库,完美构建流畅、美观且易于使用的应用程序。在前面的教程文章中,技术团队宣传了针对DevExpress LookUpEdit和GridLookUpEdit控件新的AutoSuggest模式。 简而言之,AutoSuggest允许编辑器执行自定义任务来检索下拉菜单项(因此编辑器具有虚拟数据源,每次用户在查找文本框中输入值时,虚拟数据源都会更改)。大多数人将这个新功能用于空的、未绑定的编辑器。如果您的查找编辑器绑定到静态数据源,则源记录将仅在一种使用情况下显示:当文本框为空并且用户按下下拉按钮时。

DevExpress Winforms使用技巧教程

到目前为止,如果您希望用户搜索查找记录,则不得不使用earchLookUpEdit。 该编辑器满足了业务需求,但缺少当今用户对高级桌面应用程序所期望的一些现代功能。SearchLookUpEdit带有”locked”文本框,该文本框不允许用户通过键盘输入文本值,该文本框不允许用户通过键盘输入文本值。为了找到记录,它激活了一个下拉面板,并允许用户在其嵌入式查找面板中输入搜索条件。

DevExpress Winforms使用技巧教程

使用v19.2,您能够将LookUpEdit \ GridLookUpEdit编辑器绑定到数据源,将Properties.SearchMode更改为AutoSearch和voila:使用户能够在编辑器的文本框中输入搜索值——匹配的记录将自动显示在查找的下拉菜单中。

DevExpress Winforms使用技巧教程

每当实施一项新功能时,技术团队都会竭尽所能将核心功能扩展到多个产品中。例如,这项新的自动搜索功能将接受Find Panel所使用的相同语法。

DevExpress Winforms使用技巧教程

就像AutoSuggest一样,当用户输入文本值时,AutoSearch会触发自己的事件(AutoSearch事件)。 尽管您不需要处理事件(一切都可以直接使用),但已为您提供了在需要时进行处理的功能。例如您可以在事件处理程序中使用e.SetParameters方法来微调搜索结果,此方法接受两个参数,这些参数类似于WinForms数据感知控件中显示的Find Panels所使用的ParserKind和Condition属性:

using DevExpress.Data.Filtering;

private void LookUpEdit1_AutoSearch(object sender, LookUpEditAutoSearchEventArgs e)
{
e.SetParameters(FindPanelParserKind.And, FilterCondition.StartsWith);
}

DevExpress Winforms使用技巧教程

由于AutoSuggest和AutoSearch事件的参数均来自同一基类,因此适用自定义突出显示API,下面的示例说明了如何在与文本框中输入的值匹配时突出显示整个数据字段值。

DevExpress Winforms使用技巧教程

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全新发布,欢迎下载最新版体验哦~

DevExpress中文网官网QQ群:540330292      欢迎一起进群讨论

扫描关注DevExpress中文网微信公众号,及时获取最新动态及最新资讯

DevExpress中文网微信

标签:

本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@capbkgr.cn

文章转载自:慧都网

为你推荐

  • 推荐视频
  • 推荐活动
  • 推荐产品
  • 推荐文章
  • 慧都慧问
扫码咨询


添加微信 立即咨询

电话咨询

客服热线
023-68661681

TOP