winform下(C#)用treeview绑定xml动态生成特定的树 怎么在winform下快速用treeview绑定xml 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 我做和 listView控件绑定 不知道可否 我对winform不太熟悉,listview可以显示属性结构嘛 遍历xml绑定或XmlDataSource //string path = Application.StartupPath.Substring(0, Application.StartupPath.IndexOf("bin")); private void btnAdd_Click(object sender, EventArgs e) { XmlDocument doc = new XmlDocument(); doc.Load("Student.xml"); XmlNode node = doc.CreateElement("Student"); //第一个节点 XmlNode Num = doc.CreateElement("Num"); Num.InnerText = txtNum.Text; node.AppendChild(Num); //第二个节点 XmlNode Name = doc.CreateElement("Name"); Name.InnerText = txtName.Text; node.AppendChild(Name); //第三个节点 XmlNode Age = doc.CreateElement("Age"); Age.InnerText = txtAge.Text; node.AppendChild(Age); //添加第四个节点 XmlNode Hobby = doc.CreateElement("Hobby"); Hobby.InnerText = txtHobby.Text; node.AppendChild(Hobby); //全部添加到根节点 XmlNode rootNode = doc.DocumentElement; rootNode.AppendChild(node); doc.Save("Student.xml"); MessageBox.Show("添加成功!", "系统提示", MessageBoxButtons.OKCancel, MessageBoxIcon.Information); addTreeView(); } private void btnSearch_Click(object sender, EventArgs e) { NewMethod(); XmlDocument doc = new XmlDocument(); doc.Load("Student.xml"); XmlNode Mynode = doc.DocumentElement; foreach (XmlNode stuNodes in Mynode.ChildNodes) { foreach (XmlNode stu in stuNodes.ChildNodes) { if (stu.Name == "Num" && stu.InnerText == txtNum.Text) { foreach (XmlNode var in stuNodes.ChildNodes) { switch (var.Name) { case "Name": txtName.Text = var.InnerText; break; case "Age": txtAge.Text = var.InnerText; break; case "Hobby": txtHobby.Text = var.InnerText; break; } } } } } } private void NewMethod() { tvMainForm.Nodes.Clear(); XmlDocument xml = new XmlDocument(); xml.Load("Student.xml"); XmlNode root = xml.DocumentElement; foreach (XmlNode node in root.ChildNodes) { TreeNode studentNode; //将Student节点的Name添加到TreeView作为TreeView根节点 studentNode = tvMainForm.Nodes.Add(node.Name); foreach (XmlNode subNode in node.ChildNodes) { //将Student节点下的内容添加到根节点的子节点 studentNode.Nodes.Add(subNode.InnerText); } } } private void btnUpdate_Click(object sender, EventArgs e) { XmlDocument doc = new XmlDocument(); doc.Load("Student.xml"); XmlNode node = doc.DocumentElement; foreach (XmlNode stuNodes in node.ChildNodes) { foreach (XmlNode stu in stuNodes.ChildNodes) { if (stu.Name == "Num" && stu.InnerText == txtNum.Text) { foreach (XmlNode var in stuNodes.ChildNodes) { switch (var.Name) { case "Name": var.InnerText = txtName.Text; break; case "Age": var.InnerText = txtAge.Text; break; case "Hobby": var.InnerText = txtHobby.Text; break; } } } } } doc.Save("Student.xml"); MessageBox.Show("修改成功!"); } private void tvMainForm_AfterSelect(object sender, TreeViewEventArgs e) { //TreeNode node = tvMainForm.SelectedNode; //int index = node.Index; if (tvMainForm.SelectedNode==null) { return; } else { XmlDocument xml = new XmlDocument(); xml.Load("Student.xml"); XmlNode root = xml.DocumentElement; foreach (XmlNode node in root.ChildNodes) { txtName.Text = tvMainForm.SelectedNode.Text; } //Student stu = list[tvMainForm.SelectedNode.Text]; //txtNum.Text = stu.Num.ToString(); //txtName.Text = stu.Name; //txtAge.Text = stu.Age.ToString(); //txtHobby.Text = stu.Hobby; } } private void btnDel_Click(object sender, EventArgs e) { if (tvMainForm.SelectedNode.Level != 0) { tvMainForm.SelectedNode.Remove(); } else { tvMainForm.SelectedNode.Remove(); } XmlDocument doc = new XmlDocument(); doc.Load("Student.xml"); XmlNode node = doc.DocumentElement; foreach (XmlNode stuNode in node.ChildNodes) { foreach (XmlNode stu in stuNode.ChildNodes) { if (stu.Name == "Num" && stu.InnerText == txtNum.Text) { stuNode.ParentNode.RemoveChild(stuNode); } } } doc.Save("Student.xml"); MessageBox.Show("删除成功!"); } //添加到集合中 private void addTreeView() { XmlDocument doc = new XmlDocument(); doc.Load("Student.xml"); XmlNode node = doc.DocumentElement; //获取根节点 foreach(XmlNode nodes in node.ChildNodes) { Student students = new Student(); if(nodes.Name =="Student") { foreach (XmlNode stu in nodes.ChildNodes) { switch (stu.Name) { case "Num": students.Num = Convert.ToInt32(stu.InnerText); break; case "Name": students.Name = stu.InnerText; break; case "Age": students.Age = Convert.ToInt32(stu.InnerText); break; case "Hobby": students.Hobby = stu.InnerText; break; } } } list.Add(students.Name,students); } } private void btnExit_Click(object sender, EventArgs e) { DialogResult result; result = MessageBox.Show("确定要退出吗?","系统提示",MessageBoxButtons.OKCancel,MessageBoxIcon.Information); if (result == DialogResult.OK) { Application.Exit(); } } }} 求教 Form窗体坐标和屏幕坐标的区别 基于TCP的客户端,如何自动识别网络断开了? 模拟登陆renren网 在DataTable里怎样找到序号字段值最大的那一行,并返回行序号字段的值? dateTimePicker控件输入数据问题 怎么做才能达到这个功能? 在更新listView的时候, 如何能不让页面闪铄啊 在textBox中不填数据时显示0.00,填入数据后,按小数点右对齐.如何实现. asp.net怎么把地址栏中的真实地址 c#高手帮帮忙! 用控制台应用程序创建类,显示年月日 用SQLDMO.dll备份数据库的问题
不知道可否
或XmlDataSource
//string path = Application.StartupPath.Substring(0, Application.StartupPath.IndexOf("bin"));
private void btnAdd_Click(object sender, EventArgs e)
{
XmlDocument doc = new XmlDocument();
doc.Load("Student.xml");
XmlNode node = doc.CreateElement("Student");
//第一个节点
XmlNode Num = doc.CreateElement("Num");
Num.InnerText = txtNum.Text;
node.AppendChild(Num);
//第二个节点
XmlNode Name = doc.CreateElement("Name");
Name.InnerText = txtName.Text;
node.AppendChild(Name);
//第三个节点
XmlNode Age = doc.CreateElement("Age");
Age.InnerText = txtAge.Text;
node.AppendChild(Age);
//添加第四个节点
XmlNode Hobby = doc.CreateElement("Hobby");
Hobby.InnerText = txtHobby.Text;
node.AppendChild(Hobby); //全部添加到根节点
XmlNode rootNode = doc.DocumentElement;
rootNode.AppendChild(node);
doc.Save("Student.xml");
MessageBox.Show("添加成功!", "系统提示", MessageBoxButtons.OKCancel, MessageBoxIcon.Information);
addTreeView();
} private void btnSearch_Click(object sender, EventArgs e)
{
NewMethod();
XmlDocument doc = new XmlDocument();
doc.Load("Student.xml");
XmlNode Mynode = doc.DocumentElement;
foreach (XmlNode stuNodes in Mynode.ChildNodes)
{
foreach (XmlNode stu in stuNodes.ChildNodes)
{
if (stu.Name == "Num" && stu.InnerText == txtNum.Text)
{
foreach (XmlNode var in stuNodes.ChildNodes)
{
switch (var.Name)
{
case "Name":
txtName.Text = var.InnerText;
break;
case "Age":
txtAge.Text = var.InnerText;
break;
case "Hobby":
txtHobby.Text = var.InnerText;
break;
}
}
}
}
}
} private void NewMethod()
{ tvMainForm.Nodes.Clear();
XmlDocument xml = new XmlDocument();
xml.Load("Student.xml");
XmlNode root = xml.DocumentElement;
foreach (XmlNode node in root.ChildNodes)
{
TreeNode studentNode;
//将Student节点的Name添加到TreeView作为TreeView根节点
studentNode = tvMainForm.Nodes.Add(node.Name);
foreach (XmlNode subNode in node.ChildNodes)
{
//将Student节点下的内容添加到根节点的子节点
studentNode.Nodes.Add(subNode.InnerText); }
}
} private void btnUpdate_Click(object sender, EventArgs e)
{
XmlDocument doc = new XmlDocument();
doc.Load("Student.xml");
XmlNode node = doc.DocumentElement;
foreach (XmlNode stuNodes in node.ChildNodes)
{
foreach (XmlNode stu in stuNodes.ChildNodes)
{
if (stu.Name == "Num" && stu.InnerText == txtNum.Text)
{
foreach (XmlNode var in stuNodes.ChildNodes)
{
switch (var.Name)
{
case "Name":
var.InnerText = txtName.Text;
break;
case "Age":
var.InnerText = txtAge.Text;
break;
case "Hobby":
var.InnerText = txtHobby.Text;
break;
}
}
}
}
}
doc.Save("Student.xml");
MessageBox.Show("修改成功!");
} private void tvMainForm_AfterSelect(object sender, TreeViewEventArgs e)
{
//TreeNode node = tvMainForm.SelectedNode;
//int index = node.Index;
if (tvMainForm.SelectedNode==null)
{
return;
}
else
{ XmlDocument xml = new XmlDocument();
xml.Load("Student.xml");
XmlNode root = xml.DocumentElement;
foreach (XmlNode node in root.ChildNodes)
{
txtName.Text = tvMainForm.SelectedNode.Text;
}
//Student stu = list[tvMainForm.SelectedNode.Text];
//txtNum.Text = stu.Num.ToString();
//txtName.Text = stu.Name;
//txtAge.Text = stu.Age.ToString();
//txtHobby.Text = stu.Hobby;
}
} private void btnDel_Click(object sender, EventArgs e)
{
if (tvMainForm.SelectedNode.Level != 0)
{
tvMainForm.SelectedNode.Remove(); }
else
{
tvMainForm.SelectedNode.Remove();
}
XmlDocument doc = new XmlDocument();
doc.Load("Student.xml");
XmlNode node = doc.DocumentElement;
foreach (XmlNode stuNode in node.ChildNodes)
{
foreach (XmlNode stu in stuNode.ChildNodes)
{
if (stu.Name == "Num" && stu.InnerText == txtNum.Text)
{
stuNode.ParentNode.RemoveChild(stuNode);
}
}
}
doc.Save("Student.xml");
MessageBox.Show("删除成功!");
}
//添加到集合中
private void addTreeView()
{
XmlDocument doc = new XmlDocument();
doc.Load("Student.xml");
XmlNode node = doc.DocumentElement;
//获取根节点
foreach(XmlNode nodes in node.ChildNodes)
{
Student students = new Student();
if(nodes.Name =="Student")
{
foreach (XmlNode stu in nodes.ChildNodes)
{
switch (stu.Name)
{
case "Num":
students.Num = Convert.ToInt32(stu.InnerText);
break;
case "Name":
students.Name = stu.InnerText;
break;
case "Age":
students.Age = Convert.ToInt32(stu.InnerText);
break;
case "Hobby":
students.Hobby = stu.InnerText;
break;
}
}
}
list.Add(students.Name,students);
}
} private void btnExit_Click(object sender, EventArgs e)
{
DialogResult result;
result = MessageBox.Show("确定要退出吗?","系统提示",MessageBoxButtons.OKCancel,MessageBoxIcon.Information);
if (result == DialogResult.OK)
{
Application.Exit();
}
}
}
}