天天看點

Winform系列——好用的DataGridview過濾控件(表格的進階搜尋功能)

     上一篇  Winform系列——好看的DataGridView折疊控件 中主要介紹了DataGridview的表格多級折疊功能。這章主要介紹下最近封裝的另一個DataGridview表格進階過濾的功能。此功能也是參照codeproject上面的源碼改寫的,代碼可能有源碼的内容,也有本人改寫過的,是以看上去可能有點亂。廢話不多說,上圖:

 1、一般的DataGridview效果:

Winform系列——好用的DataGridview過濾控件(表格的進階搜尋功能)

2、增加了列上面右鍵效果:

Winform系列——好用的DataGridview過濾控件(表格的進階搜尋功能)

3、升序和降序就沒什麼說的了,看看點選過濾的效果吧:

Winform系列——好用的DataGridview過濾控件(表格的進階搜尋功能)
Winform系列——好用的DataGridview過濾控件(表格的進階搜尋功能)
Winform系列——好用的DataGridview過濾控件(表格的進階搜尋功能)
Winform系列——好用的DataGridview過濾控件(表格的進階搜尋功能)

4、取消某一個字段過濾的方式有兩種:

Winform系列——好用的DataGridview過濾控件(表格的進階搜尋功能)
Winform系列——好用的DataGridview過濾控件(表格的進階搜尋功能)

5、取消所有字段的過濾:

Winform系列——好用的DataGridview過濾控件(表格的進階搜尋功能)

      大緻效果就如上了。代碼有點亂,如果有時間我會整理下,有興趣的可以看看。

1、向外暴露的使用類:這個類主要功能是通過構造函數 public DgvFilterManager(DataGridView dataGridView, bool autoCreateFilters){}将DataGridview對象傳進來,然後再給DataGridview增加事件和方法實作的。代碼如下:

Winform系列——好用的DataGridview過濾控件(表格的進階搜尋功能)
Winform系列——好用的DataGridview過濾控件(表格的進階搜尋功能)

View Code

2、DgvBaseFilterHost這個使用者控件作為彈出過濾框的基類,代碼如下:

Winform系列——好用的DataGridview過濾控件(表格的進階搜尋功能)
Winform系列——好用的DataGridview過濾控件(表格的進階搜尋功能)

3、DgvBaseFilterHost的實作類

Winform系列——好用的DataGridview過濾控件(表格的進階搜尋功能)
Winform系列——好用的DataGridview過濾控件(表格的進階搜尋功能)

4、DgvBaseColumnFilter這個使用者控件作為過濾列選項的基類,代碼如下:

Winform系列——好用的DataGridview過濾控件(表格的進階搜尋功能)
Winform系列——好用的DataGridview過濾控件(表格的進階搜尋功能)

5、DgvBaseColumnFilter的實作類有多個,分别定義不同類型的過濾列:

   5.1、Textbox原型的過濾子類

   5.2、ComboBox原型的過濾子類

應博友要求,附上源碼。源碼下載下傳

源碼可能和貼圖上面不太一樣,是因為貼圖上面是和我們項目樣式相關的,項目太大,無法貼上來。源碼是測試功能用的,原來從别處下載下傳下來改寫了下,但功能和貼圖上面是差不多的,有興趣的可以看看。

繼續閱讀