16.其它

16.1 关于字体

字体资源统一在<Fonts>下列出，其顺序相当于就是其ID号，顺序从0开始计数。<Properties>或<Col>要使用规定的字体，只要通过FontIndex指定该ID即可.
字体的定义和使用规则如下：
1.如果<Fonts>中某行字体在本机不存在，Treelist将自动使用下一行的字体，直到找到为止，否则将采用操作系统默认字体;
2.如果字体中FaceName="Default"或FaceName="System", 或没有FaceName，则表示操作系统的默认字体;
例如:

    <Fonts>
     <Font faceName="微软雅黑" size="-13"/>
     <Font faceName="宋体" size="14"/>
    </Fonts>

表示默认采用微软雅黑字体，如果是WindowsXP(未安装微软雅黑字体)，将自动使用下一行的宋体.

宋体在 Windows XP 操作系统中的最佳尺寸是: size=14.

16.2 关于列宽

<col>中的 “Width” 属性是用于指定列宽的，它的用法比较灵活，其含义可是是绝对宽度、窗口宽度的百分比、剩余宽度的分配比例、以及自动适配列标题. 例如如下的XML描述文件：

    <cols>
     <col id="n1" width="50%">标题1</col>  　　 //百分比
     <col id="n2" width="100">标题2</col>  　　 //绝对数
     <col id="n3" width="0.3">标题3</col> 　　  //比例因子
     <col id="n4" width="0.4">标题4</col> 　　  //比例因子
    </cols>

展现的效果如下：
请注意“比例因子”的含义和“百分比”是有区别的，“百分比”是指占窗口区域宽度的百分比，“比例因子”则用于分配剩余宽度，通常是在多个比例因子之间求得宽度比例。
如果只有一个列采用了比例因子，其含义不言自明，例如：

    <cols>
     <col id="n1" width="50%">标题1</col>
     <col id="n2" width="100">标题2</col>
     <col id="n3" width="0.3">标题3</col>
    </cols>

展现的效果如下：
为了避免按百分比或按比例分配到的绝对宽度太小，您还可以进一步指定“最小宽度”： "minWidth"属性.
此外，将width写成 width="fitHeader" (或"header"), 能让列宽自动伸展到刚好能显示下表头文字。例如：

    <cols>
     <col id="n1" width="fitHeader">标题1</col>
     <col id="n2" width="fitHeader">标题2文字</col>
     <col id="n3">标题3</col>
    </cols>

展现的效果如下：

当您用鼠标拖动过列宽后，该列的百分比和比例因子随即失效.

最后，在<Properties>中还有一个和列宽有关的属性：isAutoFitWidth，isAutoFitWidth的有效等级最高，当isAutoFitWidth="true"时，百分比和比例因子统统无效。

16.3 关于Undo

撤销(undo)和重做(Redo) 功能，统称 “Undo”，您只要执行 EnableUndo( ) 函数，Undo功能随即就开启了.
Treelist 对象中有一个 Undo 专用缓存，当 Undo 功能一旦开启，每次交互操作，系统都会自动将整体数据以快照形式记录到缓存.
Treelist 的 Undo 功能做得比较简单，所以其应用也是有局限的，如下交互操作会导致 Undo 缓存自动清零:
1.执行 Build 时；
2.执行 Load 时；
3.通过 API 动态往 Treelist 添加或删除列时；
4.树/列表之间切换时；
树列表内容一旦被用户修改，树列表将立即触发 UndoState 事件，相当于给你一个通知，比如你就可以修改工具条上 Undo/Redo 按钮的 Enable / Disable 状态了.
API函数比如 SetCellData、DeleteRows 等，是不会触发 Undo 的内部处理程序的，也不会导致 Undo 状态变化.
不建议滥用 Undo 功能, 通常可以在简单的输入、表格数据量不大的情形下使用。由于 Undo 缓存的是完整的数据，所以数据量大时肯定会影响到交互性能.

该 Undo 缓存最多能倒退 50 步