TTreeView移动节点和图标
来源:互联网 发布:潮男装品牌淘宝 编辑:程序博客网 时间:2024/05/23 10:44
void UpDownNode(TTreeNode * node,bool up,int level){ TTreeNode *TargetNode; if (level!=-1) //同级间移动 { if (node != NULL) //检查是否有选中节点 如果有则做上移操作 { if (up) //上移 { if (node->GetPrev() != NULL) { TargetNode = node->GetPrev(); while (TargetNode->Level != level) { if (TargetNode->GetPrev()==NULL ) break; else TargetNode = TargetNode->GetPrev(); } if (TargetNode != NULL) { if (TargetNode->Level ==level) { if (node->getPrevSibling() != NULL) //检查是否有同级前节点,如果有做上移操作 { if (node->getPrevSibling() != NULL) node->MoveTo(TargetNode,naInsert); else node->MoveTo(TargetNode,naAddFirst); } else node->MoveTo(TargetNode,naAdd); } } } } else //下移 { if (node->GetNext() != NULL) { TargetNode = node->GetNext(); while (TargetNode->Level != level) { if (TargetNode->GetNext()==NULL) break; else TargetNode = TargetNode->GetNext(); } if (TargetNode != NULL) { if (TargetNode->Level == level) { if (node->getNextSibling() != NULL) //检查是否有同级下节点,假如有作下移操作 { if (TargetNode->getNextSibling() != NULL) node->MoveTo(TargetNode->getNextSibling(),naInsert); else node->MoveTo(TargetNode,naAdd); } else node->MoveTo(TargetNode,naInsert); } } } } } } else //容许跨级移动 { if (node != NULL) //检查是否有选中节点 假如有则做上移操作 { if (up) //上移 { if (node->GetPrev() != NULL) { TargetNode = node->GetPrev(); if (TargetNode != NULL) { if (node->GetPrev() != NULL) //检查是否有同级前节点,如果有做上移操作 { if (node->GetPrev() != NULL) node->MoveTo(TargetNode,naInsert); else node->MoveTo(TargetNode,naAddFirst); } else node->MoveTo(TargetNode,naAdd); } } } else //下移 { if (node->GetNext() != NULL) { TargetNode = node->GetNext(); while (TargetNode->Parent == node) { if (TargetNode->GetNext() == NULL) break; else TargetNode = TargetNode->GetNext(); } if (TargetNode != NULL) { if (node->GetNext() != NULL) //检查是否有同级下节点,假如有上移操作 { if (TargetNode->GetNext() != NULL) node->MoveTo(TargetNode->GetNext(),naInsert); else node->MoveTo(TargetNode,naAdd); } else node->MoveTo(TargetNode,naAdd); } } } } }}
调用方法:
void __fastcall TForm1::Button12Click(TObject *Sender){ UpDownNode(TreeView1->Selected,true,TreeView1->Selected->Level);//上移 for(int i=1;i<TreeView1->Items->Count;i++) { TreeView1->Items->Item[i]->ImageIndex = i; TreeView1->Items->Item[i]->SelectedIndex = i; TreeView1->Items->Item[i]->StateIndex = i; //TreeView1->Items->Item[i]->TreeView->Invalidate(); } TreeView1->Refresh();}//---------------------------------------------------------------------------void __fastcall TForm1::Button13Click(TObject *Sender){ UpDownNode(TreeView1->Selected,false,TreeView1->Selected->Level);下移 for(int i=1;i<TreeView1->Items->Count;i++) { TreeView1->Items->Item[i]->ImageIndex = i; TreeView1->Items->Item[i]->SelectedIndex = i; TreeView1->Items->Item[i]->StateIndex = i; //TreeView1->Items->Item[i]->TreeView->Invalidate(); } TreeView1->Refresh();}
0 0
- TTreeView移动节点和图标
- TTreeView、TTreeNodes和TTreeNode
- ttreeview
- TTreeView节点靠左 (Delphi)
- BCB6 TTreeView、TTreeNodes和TTreeNode
- DELPHI: TTreeView 中禁止双击事件展开或关闭节点.
- mfc CTreeCtrl 添加节点 和绑定图标
- 移动图标
- 插入、移动和删除DOM节点
- 节点移动
- 移动节点
- Ttreeview和TlistBox的几个常用属性与方法
- 动态改变树节点图标和遍历树
- 动态改变树节点图标和遍历树
- TreeList 选中节点时图标状态和背景色
- 初始化TreeCtrl并为其添加节点和小图标
- TreeList 选中节点时图标状态和背景色
- Flex改变Tree树的节点图标和颜色
- ubuntu 14.04 32位系统装pps影音
- C++读取XML
- Spring中Quartz的配置
- IMX6 驱动代码位置
- 借钱有技巧,原则不可违
- TTreeView移动节点和图标
- 高等几何——射影变换6
- 杭电1425
- 黑马程序员——04-三大特性
- hdu 1846 Brave Game 巴什博奕
- 情感余额 金钱余额
- 通知(一)你可能不知道的Toast用法
- Bash 内建命令 wait
- 国内做智能电视的,逃脱不了2个问题:内容版权和监管