DevExpress WinForms中文教程:Data Grid - Excel样式的自定义过滤器对话框

翻译|使用教程|编辑:龚雪|2025-08-25 11:21:47.233|阅读 11 次

概述:本教程主要为大家介绍DevExpress WinForms数据网格控件中的Excel样式的自定义过滤器对话框,欢迎下载最新版组件体验!

# 界面/图表报表/文档/IDE等千款热门软控件火热销售中 >>

相关链接:

DevExpress WinForms拥有180+组件和UI库,能为Windows Forms平台创建具有影响力的业务解决方案。DevExpress WinForms能完美构建流畅、美观且易于使用的应用程序,无论是Office风格的界面,还是分析处理大批量的业务数据,它都能轻松胜任!

在本教程中,您将学习如何使用最终用户默认可用的Excel样式过滤器对话框、如何切换到允许您将一个字段的值与另一个字段的值进行比较的版本、如何在代码中手动调用和自定义这些对话框。

获取DevExpress WinForms v25.1正式版下载

DevExpress技术交流群11:749942875      欢迎一起进群讨论

标准自定义过滤器对话框

要调用某个列的Excel样式过滤器对话框,请单击该列的过滤器按钮并在下拉框中选择 (Custom)。

DevExpress WinForms中文使用教程图集

对话框允许最终用户创建由AND或OR逻辑运算符组合的一个或两个条件组成的标准,将第一个条件的比较运算符更改为Is greater than(大于)。在右侧的对话框中,输入值10,让AND逻辑运算符保持选中状态。对于第二个条件,选择Is less than(小于)并输入值30,单击OK应用创建的过滤条件。

DevExpress WinForms中文使用教程图集

因此,网格显示的是单价在10美元到30美元之间的记录。

DevExpress WinForms中文使用教程图集
高级自定义过滤器对话框

关闭应用程序。选择View,展开它的ColumnView.OptionsFilter属性并启用ColumnViewOptionsFilter.UseNewCustomFilterDialog选项。

DevExpress WinForms中文使用教程图集

运行应用程序来查看更改,现在当您在列的过滤器下拉列表中选择(Custom)时,将使用一个不同版本的Custom Filter Dialog(自定义过滤器对话框),此对话框还提供将当前列值与另一列中的值进行比较的功能。通过选择Field复选框激活第一种条件下的此模式,并在下拉列表中选择Discount Price列。然后,将比较操作符更改为Does not equal。对于第二个条件,选择Is less than(小于)并输入值20,单击OK来仅显示那些在单价小于20时已分配折扣的记录。

DevExpress WinForms中文使用教程图集
在代码中调用和自定义过滤器对话框

下一步是查看如何在代码中调用和定制自定义筛选器对话框。

若要在Show Custom Filter Editor的Click事件处理程序中为类别列调用自定义筛选器对话框,请调用视图的ColumnView.ShowCustomFilterDialog方法并将类别列作为参数传递。

C#

private void btn_ShowCustomFilterDialog_ItemClick(object sender, ItemClickEventArgs e) {
gridView.ShowCustomFilterDialog(colCategory);
}

过滤器对话框可以在View的ColumnView.CustomFilterDialog事件中定制,该事件将在即将显示对话框时引发。为此事件编写一个处理程序,该处理程序将抑制Unit Price列的默认对话框,然后应用自定义筛选条件。事件的CustomFilterDialogEventArgs.Column参数标识要过滤的列,指定所需的筛选条件和要在筛选面板中显示的文本,并用这些设置创建一个新的ColumnFilterInfo对象,然后将新的过滤器项分配给事件的CustomFilterDialogEventArgs.FilterInfo参数。最后,将CustomFilterDialogEventArgs.Handled参数设置为true,以防止在事件执行后调用默认的FilterDialog。

C#

private void gridView_CustomFilterDialog(object sender, DevExpress.XtraGrid.Views.Grid.CustomFilterDialogEventArgs e) {
if (e.Column.FieldName != "UnitPrice") return;
string filterSting = "[UnitPrice] > 10 AND [UnitPrice] < 30";
string displayText = "[UnitPrice] > $10.00 AND [UnitPrice] < $30.00";
ColumnFilterInfo columnFilter = new ColumnFilterInfo(filterSting, displayText);
e.FilterInfo = columnFilter;
e.Handled = true;
}

运行应用程序并单击Show Custom Filter Editor按钮,将显示Category列的过滤器对话框。在调用的对话框中,指定两个条件来显示Beverages和Confections类别中的记录。现在调用Unit Price列的过滤器下拉菜单并选择(Custom),它选择单价在10到30之间的记录。

DevExpress WinForms中文使用教程图集

更多DevExpress线上公开课、中文教程资讯请上中文网获取

关于慧都科技

慧都是⼀家⾏业数字化解决⽅案公司,专注于软件、⽯油与⼯业领域,以深⼊的业务理解和⾏业经验,帮助企业实现智能化转型与持续竞争优势。

慧都科技是DevExpress的中国区的合作伙伴,DevExpress作为用户界面领域的优秀产品,帮助企业高效构建权限管理、数据可视化(如网格/图表/仪表盘)、跨平台系统(WinForms/ASP.NET/.NET MAUI)及行业定制解决方案,加速开发并强化交互体验。


标签:

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

文章转载自:慧都网

为你推荐

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


添加微信 立即咨询

电话咨询

客服热线
023-68661681

TOP