上一篇 Winform系列——好看的DataGridView折叠控件 中主要介绍了DataGridview的表格多级折叠功能。这章主要介绍下最近封装的另一个DataGridview表格高级过滤的功能。此功能也是参照codeproject上面的源码改写的,代码可能有源码的内容,也有本人改写过的,所以看上去可能有点乱。废话不多说,上图:
1、一般的DataGridview效果:
2、增加了列上面右键效果:
3、升序和降序就没什么说的了,看看点击过滤的效果吧:
4、取消某一个字段过滤的方式有两种:
5、取消所有字段的过滤:
大致效果就如上了。代码有点乱,如果有时间我会整理下,有兴趣的可以看看。
1、向外暴露的使用类:这个类主要功能是通过构造函数 public DgvFilterManager(DataGridView dataGridView, bool autoCreateFilters){}将DataGridview对象传进来,然后再给DataGridview增加事件和方法实现的。代码如下:
2、DgvBaseFilterHost这个用户控件作为弹出过滤框的基类,代码如下:
3、DgvBaseFilterHost的实现类
4、DgvBaseColumnFilter这个用户控件作为过滤列选项的基类,代码如下:
5、DgvBaseColumnFilter的实现类有多个,分别定义不同类型的过滤列:
5.1、Textbox原型的过滤子类
5.2、ComboBox原型的过滤子类
应博友要求,附上源码。源码下载
源码可能和贴图上面不太一样,是因为贴图上面是和我们项目样式相关的,项目太大,无法贴上来。源码是测试功能用的,原来从别处下载下来改写了下,但功能和贴图上面是差不多的,有兴趣的可以看看。
本文转自懒得安分博客园博客,原文链接:http://www.cnblogs.com/landeanfen/p/4607251.html,如需转载请自行联系原作者