1、TreeView分享到分享到c#中Treeview的使用c#中Treeview这个WINDOWS FROM控件的使用对接点的基本操作:加入新接点,加入兄弟接点,删除接点;实现代码如下:删除treeView1.SelectedNode.Remove ( ) ;接点添加:private void AddChildNode ( )if ( treeView1.SelectedNode = null )MessageBox.Show ( 请选择一个节点 , 提示信息 , MessageBoxButtons.OK , MessageBoxIcon.Information ) ;else/创建一个节点对象
2、,并初始化tryArrayList r=new ArrayList();Form3 f=new Form3();f.ShowDialog(this);TreeNode tmp=new TreeNode(f.textBox1.Text);r.Add(f.textBox1.Text.ToString();r.Add(f.textBox2.Text.ToString();r.Add(f.textBox3.Text.ToString();r.Add(f.textBox4.Text.ToString();r.Add(f.textBox5.Text.ToString();r.Add(f.richTextB
3、ox1.Text.ToString();tmp.Tag=r;tmp.Text=f.textBox1.Text;ArrayList t=(ArrayList)this.treeView1.SelectedNode.Tag;if(System.Convert.ToDateTime(f.textBox2.Text.ToString()=System.Convert.ToDateTime(t1.ToString()MessageBox.Show ( 怎么可能! , 提示信息 , MessageBoxButtons.OK , MessageBoxIcon.Information ) ;elsetreeV
4、iew1.SelectedNode.Nodes.Add(tmp);treeView1.SelectedNode = tmp;treeView1.ExpandAll ( );catchMessageBox.Show ( 正确输入日期! , 提示信息 , MessageBoxButtons.OK , MessageBoxIcon.Information ) ;private void AddParent ( )/首先判断是否选定组件中节点的位置if ( treeView1.SelectedNode.Parent = null )MessageBox.Show ( 请选择一个节点 , 提示信息 ,
5、MessageBoxButtons.OK , MessageBoxIcon.Information ) ;elsetryArrayList r=new ArrayList(); Form3 f=new Form3();f.ShowDialog();r.Add(f.textBox1.Text.ToString();r.Add(f.textBox2.Text.ToString();r.Add(f.textBox3.Text.ToString();r.Add(f.textBox4.Text.ToString();r.Add(f.textBox5.Text.ToString();r.Add(f.ric
6、hTextBox1.Text.ToString();TreeNode tmp = new TreeNode (f.textBox1.Text);tmp.Tag=r;tmp.Text=f.textBox1.Text;ArrayList t=(ArrayList)this.treeView1.SelectedNode.Parent.Tag;if(System.Convert.ToDateTime(f.textBox2.Text)=System.Convert.ToDateTime(t1.ToString()MessageBox.Show ( 怎么可能! , 提示信息 , MessageBoxBut
7、tons.OK , MessageBoxIcon.Information );elsetreeView1.SelectedNode.Parent.Nodes.Add ( tmp ) ;treeView1.ExpandAll();catchMessageBox.Show ( 正确输入日期! , 提示信息 , MessageBoxButtons.OK , MessageBoxIcon.Information ) ;/在TreeView组件中加入兄弟节点遍历接点的算法:public TreeNode FindNode(TreeNode root,string strValue )if(root=nu
8、ll)return null;if(root.Text=strValue)return root;TreeNode r=null;foreach(TreeNode node in root.Nodes) r=FindNode(node,strValue);if(r!=null)break;return r;序列化实现对TREEVIEW的存储:/class2 对TreeView进行序列化/用于文件的存读;/文件以二进制写入public class TreeViewDataAccess/ TreeViewDataSerializable()public struct TreeViewDatapub
9、lic TreeNodeData Nodes;/ 递归初始化TreeView数据public TreeViewData(TreeView treeview)Nodes = new TreeNodeDatatreeview.Nodes.Count;if (treeview.Nodes.Count = 0)return;for (int i = 0; i = treeview.Nodes.Count - 1; i+) Nodes = new TreeNodeData(treeview.Nodes);/ 通过TreeViewData弹出TreeViewpublic void PopulateTree
10、(TreeView treeview)if (this.Nodes = null | this.Nodes.Length = 0) return;treeview.BeginUpdate();for (int i = 0; i = this.Nodes.Length - 1; i+) treeview.Nodes.Add(this.Nodes.ToTreeNode();treeview.EndUpdate();/ TreeNodeDataSerializable()public struct TreeNodeDatapublic string Text;public int ImageInde
11、x;public int SelectedImageIndex;public bool Checked;public bool Expanded;public object Tag;public Color BackColor;public TreeNodeData Nodes;/ TreeNode构造函数public TreeNodeData(TreeNode node)this.Text = node.Text;this.ImageIndex = node.ImageIndex;this.SelectedImageIndex = node.SelectedImageIndex;this.C
12、hecked = node.Checked;this.BackColor=node.BackColor;this.Expanded = node.IsExpanded;this.Nodes = new TreeNodeDatanode.Nodes.Count;this.Tag =node.Tag;if (node.Nodes.Count = 0) return;for (int i = 0; i = node.Nodes.Count - 1; i+) Nodes = new TreeNodeData(node.Nodes);/ TreeNodeData返回TreeNodepublic Tree
13、Node ToTreeNode()TreeNode ToTreeNode = new TreeNode(this.Text, this.ImageIndex, this.SelectedImageIndex);ToTreeNode.Checked = this.Checked;ToTreeNode.BackColor=this.BackColor;ToTreeNode.Tag = this.Tag;if (this.Expanded) ToTreeNode.Expand();if (this.Nodes = null & this.Nodes.Length = 0) return null;i
14、f(ToTreeNode != null & this.Nodes.Length = 0)return ToTreeNode;for (int i = 0; i = this.Nodes.Length - 1; i+) ToTreeNode.Nodes.Add(this.Nodes.ToTreeNode();return ToTreeNode;/ 加载TreeViewpublic static void LoadTreeViewData(TreeView treeView, string path)tryBinaryFormatter ser = new BinaryFormatter();Stream file = new FileStream(path,FileMode.Open,FileAccess.Read,FileShare.Read);TreeViewData treeData = (TreeViewData)(ser.Deserialize(file);treeData.PopulateTree(treeView);file.Close();catch
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1