扩展 DataGridView 的功能(三)

国庆长假过得真快啊, 真希望能。。。。。。。。(喂,快醒醒。。。) 

下面这个是DataGrid 的分组显示, 先放一个效果图

扩展 DataGridView 的功能(三)

其实这个没什么难的, 因为 DataGridView 已经提供了很多功能了, 我们只需要将某些功能再封装一下即可。

比如分组显示的话就利用了原控件的一个重要属性 DataGridViewRow.Visible ,来控制行的显示与隐藏。

想像一下, 当将 group 折叠起来的时候, 实际上就上将它的 child rows 隐藏,

           当将 group 展开的时候, 也就是将它所有的 child rows 的 Visible 属性设为 True 即可

原理弄懂了, 要实现起来就比较容易了, 无非就是控制 rows 的 Visible 属性,以及通过单元格的自绘来画出“加号”和“减号”即可

好了, 这次我们不需要修改 DataGridViewEx 类, 而是从 DataGridViewTextboxColumn 和 DataGridViewTextboxCell 中继承两个新类

他们分别表示 DataGridView 的“列”和“单元格”

     ///   <summary>
    
///  可分组的列 (该列必须是 Grid 的第一列)
    
///   </summary>
     public   class  DataGridViewGroupColumn : DataGridViewTextBoxColumn

 

     ///   <summary>
    
///  可分组的单元格
    
///   </summary>
     public   class  DataGridViewGroupCell : DataGridViewTextBoxCell

 

主要的代码在 DataGridViewGroupCell 中, 

ShowChild

画+和-

最后来一段调用的代码, 运行后即产生本文开头的图片中的效果

调用运行


代码下载 

 

 

 

 

你可能感兴趣的:(datagridview)