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

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

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

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

标准自定义过滤器对话框

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

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

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

高级自定义过滤器对话框

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

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

在代码中调用和自定义过滤器对话框

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

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

C#

cs 复制代码
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#

cs 复制代码
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线上公开课、中文教程资讯请上中文网获取

相关推荐
Cx330❀10 小时前
Qt 多线程深度解析:从底层原理到 UI 线程与同步实战
开发语言·qt·ui·搜索引擎·性能优化·图形渲染
传奇开心果编程11 小时前
【声明式UI实用开发技术学与练】第5课 表单处理:受控与非受控
ui·移动开发·开发范式·编程框架·声明式ui
传奇开心果编程13 小时前
【声明式UI开发实用技术学与练】第9课 派生状态与计算
ui·移动开发·ux·编程框架·声明式ui
Data-Miner13 小时前
离线AI制表:模型适配与脚本固化实操
大数据·数据库·人工智能·excel
天蓝蓝的本我13 小时前
linux本地部署Qwen3.8 27B
linux·运维·excel
扶风ff13 小时前
练题簿在线免费刷题:题目导入、章节管理、Excel 与 Word 导出,让题库更好用
学习·小程序·word·excel
ZARD99615 小时前
Codex 连接 Figma:让 AI 读取 Figma UI 设计稿数据
ui·figma·codex
事圆则缓16 小时前
Android 一次性事件怎么设计:Channel、SharedFlow 还是 UI State?
android·ui
我命由我1234516 小时前
Photoshop - Photoshop 使用魔棒工具选择单独的区域
学习·ui·职场和发展·求职招聘·职场发展·学习方法·photoshop
特立独行的猫a16 小时前
用仓颉语言给娃写了个打字练习游戏:cj-tauri 项目实战
游戏·ui·框架·tauri·仓颉·cangjie·cj-tauri