两颗树,分别为Tree1和Tree2啦。
1.Tree2带有checkbox,当我选择父节点的时候,子节点也选中,选择某个子节点时,父节点也不选中。我现在只能做其中的一种。2。分别选择Tree1和Tree2上的节点时候,将值保存到数据库,当然Tree1 单选,Tree2有Checkbox 为多选啦,我现在是想点击Tree1的某个节点时,Tree2就显示以前勾选的节点,重新组成的新树。大家有好的建议吗?C# winform 程序 请大家帮帮忙
1.Tree2带有checkbox,当我选择父节点的时候,子节点也选中,选择某个子节点时,父节点也不选中。我现在只能做其中的一种。2。分别选择Tree1和Tree2上的节点时候,将值保存到数据库,当然Tree1 单选,Tree2有Checkbox 为多选啦,我现在是想点击Tree1的某个节点时,Tree2就显示以前勾选的节点,重新组成的新树。大家有好的建议吗?C# winform 程序 请大家帮帮忙
用递归,遍历你选择的节点的所有子节点,设置它们的状态为选中:
TreeNode parent=Tree1.SelectedNode;
SelectNodes(parent);//主调方法private void SelectNodes(TreeNode parent)
{
foreach(TreeNode node in parent.Nods)
{
...//设置节点的当前状态为选中
SelectNodes(node);
}
}2.选择某个子节点时,父节点不选中:
这个好像不用写代码吧3.分别选择Tree1和Tree2上的节点时候,将值保存到数据库:
这个就直接向数据库里添加数据就可以了,莫非两个树上的节点有关联?4.当然Tree1 单选,Tree2有Checkbox 为多选啦:
不太明白5.点击Tree1的某个节点时,Tree2就显示以前勾选的节点,重新组成新树:
不太理解,Tree1的某个节点跟Tree2的节点有关系吗?如果有的话,那就把保存在数据库里的值读出来,自己再Create一个新的树
第二个问题应该是我没描述清楚吧其实就是将Tree1和Tree2俩个树节点的id保存在一张表中,我现在不知道如何将表中的数据读取出来 重新创建一个树。
ID ParentID
1 0
2 0
3 0
4 1
5 1
6 4
7 2对应的树就是:
1
4
6
5
2
7
3
问题2的关键就是存储tree2,存储一个棵树最简单的办法是用一个二维数组。
相当于用一个矩形包围tree2,设置0或1即可。
如果需要保存的话,可以用序列化的方法,当然Treeview本身是不能序列化的,所以有人写了这么个方法。
你看完就明白了,是酱紫的:
http://hi.baidu.com/codeyuer/blog/item/6499e50901c65fac2fddd40f.html