如题,在线等,测试通过,即可给分
解决方案 »
- 用Cookie保存了登录密码,为什么不能记住
- 我有4个重载的方法,其中第四个相当于执行方法3和方法2,怎么写?
- 如何判断pBox已经动态添加过Click事件?
- 3.dtDispaly.Rows[i].IsNull(j)的问题(dtDispaly是datatable):
- WinForms程序在其它机器上不能运行的问题
- 主程序(线程)如何等待webBrowser1_DocumentCompleted()结束?
- C#小问题两则
- 怎样在c#中调用MapX控件?修改*.tab文件的表结构,给tab文件增加新列并保存到数据库??
- Application是怎么用啊,它与Session有什么区别啊
- winform用filestream生成文档,总是会在C盘windows目录下再生成一个文档
- 谁有pdf解密软件
- WPF前景看好啊~
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Xml;namespace treeView4
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
getxml(); //在页面上的空间上显示treeView
ScanNodes(treeView1.Nodes); //遍历所有的treeNode,并对每一个遍历到的treeNode的tag赋值 }
private void ScanNodes(TreeNodeCollection ANodes)
{
if (ANodes == null) return;
foreach (TreeNode vNode in ANodes)
{
vNode.Tag = new tagTree(vNode,vNode.GetNodeCount(false)); //每个treeNode的tag都保存一个tagTree对象
ScanNodes(vNode.Nodes);
}
} public void getxml()
{
TreeNode t1 = new TreeNode();
t1.Text = "中国";
treeView1.Nodes.Add(t1);
XmlDocument doc = new XmlDocument();
doc.Load("data.xml");
XmlNodeList nodeList;
XmlNode root = doc.DocumentElement;
nodeList = root.SelectNodes("descendant::node");
foreach (XmlNode node in nodeList)
{
string s = node.Attributes.GetNamedItem("pid").Value;
if (s == "0")
{
creattree(node.InnerText, t1, "s", nodeList);
}
}
} public void creattree(string text, TreeNode tnd, string pid, XmlNodeList nodeList)
{
TreeNode t2 = new TreeNode();
t2.Text = text;
string aValue = "";
foreach (XmlNode node in nodeList)
{
if (node.InnerText == text)
{
XmlNode a_id = node.Attributes.GetNamedItem("id");
aValue = a_id.Value;
break;
}
} foreach (XmlNode node in nodeList)
{
if (node.Attributes.GetNamedItem("pid").Value == aValue)
{
string s = node.Attributes.GetNamedItem("pid").Value;
creattree(node.InnerText, t2, "s", nodeList);
}
}
tnd.Nodes.Add(t2);
} private void treeView1_AfterSelect(object sender, TreeViewEventArgs e)
{
dataGridView1.Columns.Clear(); ;
dataGridView1.Columns.Add("类型", "类型");
dataGridView1.Columns.Add("值", "值");
TreeNode q1 = treeView1.SelectedNode;
tagTree a = (tagTree)q1.Tag;
if (a.getParent() != "")
{
string[] strParent = { "父节点", a.getParent() };
dataGridView1.Rows.Add(strParent);
}
int i = 0;
while (a.child[i] != "")
{
string[] strChild= { "子节点", a.child[i] };
dataGridView1.Rows.Add(strChild);
i++;
}
dataGridView1.AllowUserToAddRows = false; //删除最后一行,不容许用户添加数据
} private void Form1_Load(object sender, EventArgs e)
{ }
}
}using System;
using System.Collections.Generic;
using System.Text;
using System.Windows.Forms;namespace treeView4
{
class tagTree
{
public string[] child ;
private string parent = "";
public tagTree()
{ }
public tagTree(TreeNode selectNode, int coutChild )
{
int j = 0;
int i = 0;
TreeNode[] s1Node;
s1Node = new TreeNode[6];
TreeNode pnode;
s1Node[0] = selectNode.FirstNode;
child = new string[6];
for (i = 0; i < 6; i++)
{
child[i] = "" ;
}
for (i = 0; i < coutChild; i++)
{
j++;
s1Node[j] = s1Node[j - 1].NextNode;
child[i] = s1Node[i].Text;
}
if (s1Node[i + 1] != null)
{
child[i + 1] = s1Node[i + 1].Text;
} if (selectNode.Parent is TreeNode)
{
pnode = (TreeNode)selectNode.Parent;
parent = pnode.Text;
}
}
public string getParent()
{
return parent;
}
}
}
<?xml version= "1.0" encoding= "gb2312" ?>
<nodes>
<node id="2" pid="1">武汉</node>
<node id="1" pid="0">湖北省</node>
<node id="4" pid="2">汉口</node>
<node id="5" pid="2">武昌</node>
<node id="3" pid="1">黄石</node>
<node id="7" pid="3">黄石2.1</node>
<node id="6" pid="3">黄石2.2</node>
<node id="8" pid="7">黄石3.1</node>
<node id="9" pid="7">黄石3.2</node>
<node id="10" pid="1">孝感</node>
<node id="11" pid="10">云梦</node>
<node id="12" pid="10">孝南</node>
<node id="12" pid="10">安陆</node>
<node id="12" pid="10">应城</node>
</nodes>我做的是选中一个节点
显示他父子节点的信息
{
string strpath = string.Empty;
XmlDocument missionDoc = new XmlDocument();
missionDoc.Load("App.xml");
XmlNode rootNode = missionDoc.DocumentElement;
foreach (XmlNode node in rootNode.SelectNodes("/configuration/configfilepath"))
{
strpath = node.InnerText;
}
return strpath;
}App.xml<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configfilepath>D:\Temp</configfilepath>
</configuration>