例如像组合框一样,有一个显示的值(DisplayMember)和一个真正的值(ValueMember),我想在树型控件(TreeView)中也实现这样的功能,让显示的值和具体的值不同。比如说我现在要在用树型控件显示学生的姓名,但是由于学生姓名可能有重复,所以我想当选中某姓名后是得到此学生的ID,用于数据库中的查询操作,有没有什么办法能实现?

解决方案 »

  1.   

    一个Node不是有:Tag可以存ID,Name存学生姓名嘛
      

  2.   


    TreeNode root = new TreeNode("root");
    for(int i=0; i<5; i++)
    {
      TreeNode node = new TreeNode(i.ToString,"name"+i.ToString());
      root.ChildNodes.Add(node);
    }
    TreeView1.Nodes.Add(root);
      

  3.   

    让学生ID等于TreeNode的Name。TreeNode的Name属性同时还是各TreeNode的Key,但并不一定等于显示出来的Text。
      

  4.   

    用Tag来存ID字段的值,Name存学生姓名字段的值就可以了.
      

  5.   

    对,ls的都说了,用tag多好啊
      

  6.   

    太感谢了!但是我想另外问一个,大家将数据库中的数据都是如何放入TreeView控件中的,我没有找到绑定的方法,所以就用循环一个一个加进去,大家都是这样弄的么?
      

  7.   

    建议楼主思考一下什么是面向对象!其实楼上很多人都说了,TreeNode有个Tag.
    你只要把你的对象方在Tag中即可。至于显示什么这只是对TreeNode.Text进行控制。至于要实现“DisplayMember”
    则要重写TreeView控件,让它能动态从TreeNod的Tag对象中取得相应的属性。可参照:CombBox和DataGridView的实现。
      

  8.   

    楼上的意思我明白,我也是这样做的。我现在是想问,如果我的多层架构中返回的一个ArrayList对象集合,那是否有自动绑定的方式将数据绑定在TreeView控件中?