TreeView.docx
《TreeView.docx》由会员分享,可在线阅读,更多相关《TreeView.docx(11页珍藏版)》请在冰豆网上搜索。
![TreeView.docx](https://file1.bdocx.com/fileroot1/2022-10/28/4bd2efb3-ee24-48d2-b8f5-e84bd8f03231/4bd2efb3-ee24-48d2-b8f5-e84bd8f032311.gif)
TreeView
分享到
分享到
c#中Treeview的使用
c#中Treeview这个WINDOWSFROM控件的使用对接点的基本操作:
加入新接点,加入兄弟接点,删除接点;
实现代码如下:
删除{treeView1.SelectedNode.Remove()};
接点添加:
privatevoidAddChildNode()
{
if(treeView1.SelectedNode==null)
{
MessageBox.Show("请选择一个节点","提示信息",MessageBoxButtons.OK,MessageBoxIcon.Information);
}
else
{
//创建一个节点对象,并初始化
try
{
ArrayListr=newArrayList();
Form3f=newForm3();
f.ShowDialog(this);
TreeNodetmp=newTreeNode(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.richTextBox1.Text.ToString());
tmp.Tag=r;
tmp.Text=f.textBox1.Text;
ArrayListt=(ArrayList)this.treeView1.SelectedNode.Tag;
if(System.Convert.ToDateTime(f.textBox2.Text.ToString())<=System.Convert.ToDateTime(t[1].ToString()))
{
MessageBox.Show("怎么可能!
","提示信息",MessageBoxButtons.OK,MessageBoxIcon.Information);
}
else
{
treeView1.SelectedNode.Nodes.Add(tmp);
treeView1.SelectedNode=tmp;
treeView1.ExpandAll();
}
}
catch
{
MessageBox.Show("正确输入日期!
","提示信息",MessageBoxButtons.OK,MessageBoxIcon.Information);
}
}
}
privatevoidAddParent()
{
//首先判断是否选定组件中节点的位置
if(treeView1.SelectedNode.Parent==null)
{
MessageBox.Show("请选择一个节点","提示信息",MessageBoxButtons.OK,MessageBoxIcon.Information);
}
else
{
try
{
ArrayListr=newArrayList();
Form3f=newForm3();
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.richTextBox1.Text.ToString());
TreeNodetmp=newTreeNode(f.textBox1.Text);
tmp.Tag=r;
tmp.Text=f.textBox1.Text;
ArrayListt=(ArrayList)this.treeView1.SelectedNode.Parent.Tag;
if(System.Convert.ToDateTime(f.textBox2.Text)<=System.Convert.ToDateTime(t[1].ToString()))
{
MessageBox.Show("怎么可能!
","提示信息",MessageBoxButtons.OK,MessageBoxIcon.Information);
}
else
{
treeView1.SelectedNode.Parent.Nodes.Add(tmp);
treeView1.ExpandAll();
}
}
catch
{
MessageBox.Show("正确输入日期!
","提示信息",MessageBoxButtons.OK,MessageBoxIcon.Information);
}
//在TreeView组件中加入兄弟节点
}
}
遍历接点的算法:
publicTreeNodeFindNode(TreeNoderoot,stringstrValue)
{
if(root==null)
returnnull;
if(root.Text==strValue)
returnroot;
TreeNoder=null;
foreach(TreeNodenodeinroot.Nodes)
{
r=FindNode(node,strValue);
if(r!
=null)
break;
}
returnr;
}
序列化实现对TREEVIEW的存储:
///class2对TreeView进行序列化
///用于文件的存读;
///文件以二进制写入
publicclassTreeViewDataAccess
{
///TreeViewData
[Serializable()]
publicstructTreeViewData
{
publicTreeNodeData[]Nodes;
///递归初始化TreeView数据
publicTreeViewData(TreeViewtreeview)
{
Nodes=newTreeNodeData[treeview.Nodes.Count];
if(treeview.Nodes.Count==0)
{
return;
}
for(inti=0;i<=treeview.Nodes.Count-1;i++)
{
Nodes=newTreeNodeData(treeview.Nodes);
}
}
///通过TreeViewData弹出TreeView
publicvoidPopulateTree(TreeViewtreeview)
{
if(this.Nodes==null||this.Nodes.Length==0)
{
return;
}
treeview.BeginUpdate();
for(inti=0;i<=this.Nodes.Length-1;i++)
{
treeview.Nodes.Add(this.Nodes.ToTreeNode());
}
treeview.EndUpdate();
}
}
///TreeNodeData
[Serializable()]
publicstructTreeNodeData
{
publicstringText;
publicintImageIndex;
publicintSelectedImageIndex;
publicboolChecked;
publicboolExpanded;
publicobjectTag;
publicColorBackColor;
publicTreeNodeData[]Nodes;
///TreeNode构造函数
publicTreeNodeData(TreeNodenode)
{
this.Text=node.Text;
this.ImageIndex=node.ImageIndex;
this.SelectedImageIndex=node.SelectedImageIndex;
this.Checked=node.Checked;
this.BackColor=node.BackColor;
this.Expanded=node.IsExpanded;
this.Nodes=newTreeNodeData[node.Nodes.Count];
this.Tag=node.Tag;
if(node.Nodes.Count==0)
{
return;
}
for(inti=0;i<=node.Nodes.Count-1;i++)
{
Nodes=newTreeNodeData(node.Nodes);
}
}
///TreeNodeData返回TreeNode
publicTreeNodeToTreeNode()
{
TreeNodeToTreeNode=newTreeNode(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)
{
returnnull;
}
if(ToTreeNode!
=null&&this.Nodes.Length==0)
{
returnToTreeNode;
}
for(inti=0;i<=this.Nodes.Length-1;i++)
{
ToTreeNode.Nodes.Add(this.Nodes.ToTreeNode());
}
returnToTreeNode;
}
}
///加载TreeView
publicstaticvoidLoadTreeViewData(TreeViewtreeView,stringpath)
{
try
{
BinaryFormatterser=newBinaryFormatter();
Streamfile=newFileStream(path,FileMode.Open,FileAccess.Read,FileShare.Read);
TreeViewDatatreeData=((TreeViewData)(ser.Deserialize(file)));
treeData.PopulateTree(treeView);
file.Close();
}
catch