# TreeNode (树形列表项) `TreeNode` 控件继承了 `ListContainerElement` 控件属性和方法,更多可用属性和方法请参考:[ListContainerElement](ListContainerElement.md) 控件 ## 可用方法 | 方法名称 | 用途 | | :--- | :--- | | [OnClickItem](#OnClickItem) | 子项被点击时触发 | | [SetTreeView](#SetTreeView) | 设置子项所属的树形列表容器 | | [GetParentNode](#GetParentNode) | 获取父节点指针 | | [SetParentNode](#SetParentNode) | 设置父节点 | | [AddChildNode](#AddChildNode) | 添加子节点 | | [AddChildNodeAt](#AddChildNodeAt) | 在指定位置添加子节点 | | [RemoveChildNodeAt](#RemoveChildNodeAt) | 从指定位置移除一个子节点 | | [RemoveChildNode](#RemoveChildNode) | 根据子节点指针移除一个子节点 | | [RemoveAllChildNode](#RemoveAllChildNode) | 移除所有子节点 | | [GetDescendantNodeCount](#GetDescendantNodeCount) | 递归获取所有子节点个数 | | [GetChildNodeCount](#GetChildNodeCount) | 获取下一级子节点个数 | | [GetChildNode](#GetChildNode) | 获取一个子节点指针 | | [GetChildNodeIndex](#GetChildNodeIndex) | 根据子节点指针获取子节点位置索引 | | [IsExpand](#IsExpand) | 判断是否展开状态 | | [SetExpand](#SetExpand) | 设置是否展开显示子节点 | | [GetDepth](#GetDepth) | 获取子项层级 | | [RemoveSelf](#RemoveSelf) | 删除自身 | ### OnClickItem 子项被点击时触发 ```cpp virtual bool OnClickItem(EventArgs* param) ``` - 参 数: - `param` 消息体 - 返回值:始终返回 true ### SetTreeView 设置子项所属的树形列表容器 ```cpp void SetTreeView(TreeView* pTreeView) ``` - 参 数: - `pTreeView` 容器指针 - 返回值:无 ### GetParentNode 获取父节点指针 ```cpp TreeNode* GetParentNode() ``` - 参 数:无 - 返回值:返回父节点指针 ### SetParentNode 设置父节点 ```cpp void SetParentNode(TreeNode* pParentTreeNode) ``` - 参 数: - `pParentTreeNode` 父节点指针 - 返回值:无 ### AddChildNode 添加子节点 ```cpp bool AddChildNode(TreeNode* pTreeNode) ``` - 参 数: - `pTreeNode` 子节点指针 - 返回值:成功返回 true,失败返回 false ### AddChildNodeAt 在指定位置添加子节点 ```cpp bool AddChildNodeAt(TreeNode* pTreeNode, std::size_t iIndex) ``` - 参 数: - `pTreeNode` 子节点指针 - `iIndex` 要插入哪个位置之后 - 返回值:成功返回 true,失败返回 false ### RemoveChildNodeAt 从指定位置移除一个子节点 ```cpp bool RemoveChildNodeAt(std::size_t index) ``` - 参 数: - `index` 要移除的子节点索引 - 返回值:成功返回 true,失败返回 false ### RemoveChildNode 根据子节点指针移除一个子节点 ```cpp bool RemoveChildNode(TreeNode* pTreeNode) ``` - 参 数: - `pTreeNode` 子节点指针 - 返回值:成功返回 true,失败返回 false ### RemoveAllChildNode 移除所有子节点 ```cpp void RemoveAllChildNode() ``` - 参 数:无 - 返回值:无 ### GetDescendantNodeCount 递归获取所有子节点个数 ```cpp int GetDescendantNodeCount() ``` - 参 数:无 - 返回值:返回所有子节点个数 ### GetChildNodeCount 获取下一级子节点个数 ```cpp std::size_t GetChildNodeCount() ``` - 参 数:无 - 返回值:返回子节点个数 ### GetChildNode 获取一个子节点指针 ```cpp TreeNode* GetChildNode(std::size_t iIndex) ``` - 参 数: - `iIndex` 要获取的子节点索引 - 返回值:返回子节点指针 ### GetChildNodeIndex 根据子节点指针获取子节点位置索引 ```cpp int GetChildNodeIndex(TreeNode* pTreeNode) ``` - 参 数: - `pTreeNode` 子节点指针 - 返回值:返回位置索引 ### IsExpand 判断是否展开状态 ```cpp bool IsExpand() ``` - 参 数:无 - 返回值:返回 true 为展开状态,否则为 false ### SetExpand 设置是否展开显示子节点 ```cpp void SetExpand(bool bExpand) ``` - 参 数: - `bExpand` 为 true 时展开,为 false 是不展开 - 返回值:无 ### GetDepth 获取子项层级 ```cpp int GetDepth() ``` - 参 数:无 - 返回值:返回当前层级 ### RemoveSelf 删除自身 ```cpp bool RemoveSelf() ``` - 参 数:无 - 返回值:成功返回 true,失败返回 false