TVEdit工程(图一)允许在运行时生成节点数据、编辑节点标签、通过拖放操作改变节点的位置,以及将TreeView的数据保存到XML文件或从XML文件读取。
图一
一、规划键击事件
修改用户界面控件的默认行为不仅要考虑到用户如何通过鼠标访问新的控件功能,而且还要允许用户使用键盘操作。TreeView默认支持下列键击事件:
▲ 上下两个箭头键移动光标(变换当前被选中的节点)。
▲ 左右箭头键除了变换当前被选中的节点之外,兼具扩展/折叠节点功能。
▲ Enter键扩展或折叠节点。
TVEdit工程不改变这些默认的键击行为。但由于TreeView默认的键击事件不允许用户编辑其内容,所以我们要另外添加几个事件:
▲ 按Insert键在当前选中的节点之下插入一个新的节点。如果要添加一个新的根节点,按Ctrl+Insert键。用户按下Insert键之后,控件自动进入编辑状态,再按Enter键可退出编辑状态,控件自动选中父节点,以便用户只需按一下Insert键就可以在同一父节点之下插入新节点。
▲ 按Space键(或鼠标停留较长时间)使当前选中的节点进入编辑状态(也许有的人更乐意用Enter键进入编辑状态,但TreeView控件已经定义了Enter键的默认行为,所以这里不再用它)。
▲ 按Delete键删除当前选中的节点。如果被删除的节点包含子节点,所有子节点也被同时删除。
▲ 用鼠标拖放节点可改变节点在TreeView分层结构中的位置。如果被拖动的节点包含子节点,所有子节点也将被移动。