spread表格树实现
先上图看下效果图:
玩表格的朋友应该对Component和C1Flexgrid并不陌生吧。其实我也有用C1和DGV扩展了一个表格树,占有内存小,效率也可以,但是UI是硬伤,中规中矩,不美观。我上面是基于spread扩展实现的,站在可扩展的角度,C1不错,spread我可以说完全没有扩展性可言么?小日本写的代码感觉很不规范(反编译看的)。
实现思路:
首列是重写BaseCellType基类,重绘了UI,主要是线、自定义图标、节点层级的绘制,主要是用rang确定绘制坐标,整个树层级的维护是基于链表实现的。每一行代表一个节点对象,当然节点对象的属性比较丰富,对于行的所有操作包括撤销都是基于这个链表里面的节点实现的。公式的支持,自定义了公式解析引擎,它自带的公式支持完全不能满足工程造价软件的计算。代码后续会补上。