一个简单的Demo挑选出被选中的节点: 页面代码: protected void btnShow_Click(object sender, EventArgs e) ...{ TreeNode Node = new TreeNode("Root"); tvShow.Nodes.Add(Node); TreeNode ChildNode1 = new TreeNode("ChildNode1"); TreeNode ChildNode2 = new TreeNode("ChildNode2"); TreeNode ChildNode3 = new TreeNode("ChildNode3"); Node.ChildNodes.Add(ChildNode1); Node.ChildNodes.Add(ChildNode2); Node.ChildNodes.Add(ChildNode3); TreeNode Node2 = new TreeNode("Root2"); tvShow.Nodes.Add(Node2); TreeNode ChildNode1For2 = new TreeNode("ChildNode1For2"); TreeNode ChildNode2For2 = new TreeNode("ChildNode1For2"); TreeNode ChildNode3For2 = new TreeNode("ChildNode1For2"); Node2.ChildNodes.Add(ChildNode1For2); Node2.ChildNodes.Add(ChildNode2For2); Node2.ChildNodes.Add(ChildNode3For2); } protected void btnGet_Click(object sender, EventArgs e) ...{ for (int i = 0; i < tvShow.Nodes.Count; i++) ...{ if (tvShow.Nodes[i].ChildNodes.Count > 0) //判断是否还有子节点 ...{ GetNode(tvShow.Nodes[i]); } if (tvShow.Nodes[i].Checked == true) //判断是否被选中 ...{ string s = tvShow.Nodes[i].Value.ToString(); ListBox1.Items.Add(s); } } } public void GetNode(TreeNode node) ...{ for (int i = 0; i < node.ChildNodes.Count; i++) ...{ if (node.ChildNodes[i].ChildNodes.Count > 0) //判断是否还有子节点 ...{ GetNode(tvShow.Nodes[i]); //递归查找 } if (node.ChildNodes[i].Checked == true) //判断是否被选中 ...{ string s = node.ChildNodes[i].Value.ToString(); ListBox1.Items.Add(s); } } } <html xmlns="http://www.w3.org/1999/xhtml"><head runat="server"> <title>无标题页</title></head><body> <form id="form1" runat="server"> <div> <asp:TreeView ID="tvShow" runat="server" ShowCheckBoxes ="All" ></asp:TreeView><br /> <asp:Button ID="btnShow" runat="server" Text="Show Data" onclick="btnShow_Click"/> <asp:Button ID="btnGet" runat="server" Text="Get Data" onclick="btnGet_Click"/> </div> <asp:ListBox ID="ListBox1" runat="server" Height="284px" Width="250px"> </asp:ListBox> </form></body></html>