1.遍历list<T>把数据添加到treeview上
View Code
TreeNode tn = new TreeNode(); tn.Text = "用户"; foreach (CustomerServ item in a.Results) { tn.Nodes.Add(item.Mac, item.Mac); tn.Nodes[item.Mac].Nodes.AddRange(new TreeNode[] { new TreeNode(){ Text="Mac地址:"+ item.Mac}, new TreeNode(){ Text="IP地址:"+ item.Ip}, new TreeNode(){ Text="PackId:"+ item.PackId.ToString()}, new TreeNode(){ Text="Port:"+ item.Port}, new TreeNode(){ Text="Protocol:"+ item.Protocol} }); } treeView1.Nodes.Add(tn);
2.展开节点
View Code
//定义根节点 treeView1.SelectedNode = treeView1.Nodes[0]; //展开所有节点 treeView1.SelectedNode.ExpandAll(); //展开所有子节点 tvResult.SelectedNode.Expand();
3.折叠节点
View Code
//定位根节点 treeView1.SelectedNode = treeView1.Nodes[0]; //折叠组件中所有节点 treeView1.SelectedNode.Collapse();
4.checked节点
View Code
private void treeView1_AfterCheck(object sender, TreeViewEventArgs e) { if (e.Action == TreeViewAction.ByMouse) { // textBox1.Text = e.Node.Text; if (e.Node.Checked) { //取消节点选中状态之后,取消所有父节点的选中状态 setChildNodeCheckedState(e.Node, true); } else { //取消节点选中状态之后,取消所有父节点的选中状态 setChildNodeCheckedState(e.Node, false); //如果节点存在父节点,取消父节点的选中状态 if (e.Node.Parent != null) { setParentNodeCheckedState(e.Node, false); } } } } //取消节点选中状态之后,取消所有父节点的选中状态 private void setParentNodeCheckedState(TreeNode currNode, bool state) { TreeNode parentNode = currNode.Parent; parentNode.Checked = state; if (currNode.Parent.Parent != null) { setParentNodeCheckedState(currNode.Parent, state); } } //选中节点之后,选中节点的所有子节点 private void setChildNodeCheckedState(TreeNode currNode, bool state) { TreeNodeCollection nodes = currNode.Nodes; if (nodes.Count > 0) foreach (TreeNode tn in nodes) { tn.Checked = state; setChildNodeCheckedState(tn, state); } }
5.删除选中节点
View Code
public void DeleteNote(TreeView tv) { List<TreeNode> IsDeleteTag = new List<TreeNode>(); foreach (TreeNode node in tv.Nodes) { if (node.Checked) { IsDeleteTag.Add(node); continue; } DeleteSelectChild(node, ref IsDeleteTag); } foreach (TreeNode node in IsDeleteTag) { tv.Nodes.Remove(node); } } public void DeleteSelectChild(TreeNode tnTarget, ref List<TreeNode> lsDeleteTask) { foreach (TreeNode child in tnTarget.Nodes) { if (child.Checked) { lsDeleteTask.Add(child); continue; } DeleteSelectChild(child, ref lsDeleteTask); } } private void btnRemove_Click(object sender, EventArgs e) { DeleteNote(treeView1); }