根据节点索引,所谓第几个节点,与table的行索引一致

解决方案 »

  1.   

    首先,你的TREEVIEW是一层吗?
    如果是,用INDEX直接判断就行了treeview1.nodes(ii)
    如果不是,那就需要写一个TREENODE类,因为你的TEXT又不是唯一的。需要设置一个关键字判断。
      

  2.   

    nodes.tag存一些有用的数据,比如行号等。选中时取出判断即可。
      

  3.   

    你可以用treeView.AfterSelect()这个事件的。
    你用e.Nodes.Name来取得它的Name,然后如果有相同的,你可以再取它的Parent的Name。一直取,它总会有不相同的。
    当然这是最笨的一种方法,而我也只会用这一种。
      

  4.   

    MouseDown事件中用GetNodeAt()获得节点。To 因为NodeName不是唯一的,我该如何才能实现,当我点击某一节点时,对应的图片要跟着显示
    用节点的Tag保存图片的ID获唯一标示,那么用前面获得节点,得到其Tag,再进行显示。
      

  5.   

    赞成cocosoft(pengyun)的做法
    得到唯一的节点后就可以得到对应的图片了
      

  6.   

    我现在的解决方法是:
    在建树时,TreeNode.Tag=节点唯一ID;
    然后在treeView.AfterSelect()这个事件中用如下代码:
    int row=0;
    foreach(DataRow dr in dataSet.Tables["tree"].Rows )
    {
    string nodeID=dr["NodeID"].ToString().Trim();
    string selectNodeID=treeView.SelectedNode.Tag.ToString().Trim();
    if (nodeID==selectNodeID)
    {
    myBindTree.Position=row;
    break;
    }
    row++;
    }不知道哪位大侠有更简单的方法,说实在的,我真的不想用循环来实现
      

  7.   

    DataView dv=table.Copy().DeFaultView();
    dv.RowFilter="nodeid='" + treeView.SelectedNode.Tag.ToString().Trim() + "'";
    myBindTree.Position=dv.item[0];
      

  8.   

    楼上的,DefaultView是属性而不是方法。
    我treeView.AfterSelect()这个事件中用如下代码:
    DataView dv=dataSet.Tables["tree"].Copy().DefaultView();
    dv.RowFilter="NodeID='"+this.treeView.SelectedNode.Tag.ToString().Trim()+"'";
    myBindTree.Position=dv.item[0];
    但是dv没有item这个属性,为是为什么呀
      

  9.   

    对不起,错了,是:
    DataView dv=table.Copy().DeFaultView;
    dv.RowFilter="nodeid='" + treeView.SelectedNode.Tag.ToString().Trim() + "'";
    myBindTree.Position=dv[0];
      

  10.   

    treeview中不是有treeview.SelectedNode.ID或其它的属性,ID值可为文件的名称或地址。
    另treeview中的INdex编号为父节点编号.父节点编号.本节点编号,如0.2.4表示第一个节点的第二个子节点的第四个子节点。
    给点分吧!!
      

  11.   

    to :sneak(sneak) 
    没关系,到时一定有。to:lx1920(我思故我在) 
    可以讲一下你的思路吗,我特别不明白yBindTree.Position=dv[0];这句话中的dv[0]到底是什么意思呀
      

  12.   

    to:lx1920(我思故我在) 
    dv[0]的值 为:"System.Data.DataRowView"