首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ Builder >

TreeView自动选择子节点,以及ListView有关问题.

2013-09-07 
TreeView自动选择子节点,以及ListView问题...我想实现点击按钮TreeView就自动选择上一层节点,点击另一按钮

TreeView自动选择子节点,以及ListView问题...
我想实现点击按钮TreeView就自动选择上一层节点,点击另一按钮自动选择最上层父节点..

当前已可以选择子节点,ListView显示资料,但这是我去选择的..
有办法透过点击[Image按钮],让它自动选择上一层节点吗?
连续点击,就一直往上选择 ..点击另一[Image按钮]就自动选择最上层父节点..
如何实现呢?

另外一个问题是
如何点击TreeView父节点在ListView显示TreeView子节点的vsIcon,在ListView双击vsIcon就显示TreeView子节点的vsReport。

当前已经会选择TreeView节点显示资料在ListView (vsReport) ..
但如上的方式就是弄不出来,有无例子可参考... 谢谢!! listview treeview 节点 BCB
[解决办法]
需要比较模糊,是对选中的节点进行变换,一个按钮进行同级节点跳跃,另一个跳跃到父节点
简单说下
1、获取选中节点,判断聚焦是否为真
2、遍历全部节点,获取对应节点的父节点以及对应节点的位置
3、当存在同级节点并当前节点不是第一个节点,对前一个节点聚焦
4、当存在父节点进行聚焦
[解决办法]
我想实现点击按钮TreeView就自动选择上一层节点:

    if (TreeView1->Selected->Parent)
        TreeView1->Selected = TreeView1->Selected->Parent;

点击另一按钮自动选择最上层父节点:

    TTreeNode * Node = TreeView1->Selected;
    while (Node->Parent) Node = Node->Parent;
    TreeView1->Selected = Node;

[解决办法]
这样即可:
TreeView1->HideSelection = false;
if(TreeView1->Items->Count>0 && TreeView1->SelectionCount>0 && TreeView1->Selected->Level>0){
TreeView1->Selected->Parent->Selected =true;
}
[解决办法]

引用:
Quote: 引用:

这样即可:
TreeView1->HideSelection = false;
if(TreeView1->Items->Count>0 && TreeView1->SelectionCount>0 && TreeView1->Selected->Level>0){
TreeView1->Selected->Parent->Selected =true;
}

哎呀!! 我上面打错了,是要自动选择上一层子节点不是父节点。
不好意思!! 弄到思绪都乱了 .. 麻烦大神在帮一下了  感恩 ..


看你很可怜,就再助你一把:



  TreeView1->MultiSelect = true;
  TreeView1->HideSelection = false;
if(
  TreeView1->Items->Count>0
  &&
  TreeView1->SelectionCount>0
  &&
  TreeView1->Selected->Level>0
){
if(TreeView1->Selected->Level==1){
for(int i=0;i<TreeView1->Items->Count;i++){
if(TreeView1->Items->Item[i]->Level==0){
  TreeView1->Select(TreeView1->Items->Item[i],TShiftState() <<ssCtrl);
                }
}
}else{
  TTreeNode * Node = TreeView1->Selected->Parent->Parent;
  for(int i=0;i<Node->Count;i++){
  if(Node->Item[i]->Selected!=true){
TreeView1->Select(Node->Item[i],TShiftState() <<ssCtrl);
  }
  }
}
}



如果不想让最先选中的那个节点保持选中你自己处理一下

热点排行