public void Sort() { hashListNode = new System.Collections.Hashtable(); //把listNode的内容放入DataTable中,方便排序 dtListNode = new DataTable(); dtListNode.Columns.Add("ACLID"); dtListNode.Columns.Add("FName"); dtListNode.Columns.Add("SeqNo"); for (int i = 0; i < listNode.Count; i++) { TreeNodeItem item = listNode[i]; DataRow dr = dtListNode.NewRow(); dr["ACLID"] = item.Aclid; dr["FNAME"] = item.FName; dr["SeqNo"] = item.SeqNo; dtListNode.Rows.Add(dr); if (!hashListNode.Contains(item.Aclid)) { hashListNode.Add(item.Aclid, item); } } }
private void btnUseDefautTree_Click(object sender, EventArgs e) { TreeNodeItem node1 = new TreeNodeItem(); XmlTreeNode list = XmlTreeNode.LoadFromXml(); list.Sort(); if (list != null) { DataTable dt = list.GetListNode(); DataRow[] dr = dt.Select("fname ='root'"); if (dr.Length > 0) { for (int i = 0; i < dr.Length; i++) { string aclid = dr[i]["ACLID"].ToString(); TreeNodeItem item = list.GetItemByAclid(aclid); TreeNode treeNode = new TreeNode(); treeNode.Text = item.Descript; treeNode.Tag = item; //创建子节点 CreateChildNode(treeNode, list, dt, aclid); treeView1.Nodes.Add(treeNode); } } } else { list = new XmlTreeNode(); for (int i = 0; i < 5; i++) { node1 = new TreeNodeItem(); node1.Descript = "descript" + i; node1.Name = "name" + i; node1.FName = "root"; node1.DllName = "dllName" + i; node1.Aclid = Guid.NewGuid().ToString(); list.listNode.Add(node1); } for (int i = 0; i < 5; i++) { node1 = new TreeNodeItem(); node1.Descript = "node descript" + i; node1.Name = "name" + i; node1.FName = "name" + i; node1.DllName = "dllName" + i; node1.Aclid = Guid.NewGuid().ToString(); list.listNode.Add(node1); } } XmlTreeNode.SaveToXml(list); }
private void treeView1_MouseDoubleClick(object sender, MouseEventArgs e) { if (treeView1.GetNodeAt(e.Location) != null) { TreeNode node = treeView1.GetNodeAt(e.Location); if (node.Tag != null && node.Tag is TreeNodeItem) { TreeNodeItem item = node.Tag as TreeNodeItem; item.DllName = ""; item.Name = ""; } } }
private void FormAddTreeNode_Load(object sender, EventArgs e) { if (EditNodeItem == null) { EditNodeItem = new TreeNodeItem(); } else { Aclid = EditNodeItem.Aclid; FAclid = EditNodeItem.FName; } txtAclid.Text = Aclid; txtFName.Text = FAclid; }
private void CreateChildNode(TreeNode node, XmlTreeNode list, DataTable dt, string fAclid) { DataRow[] drTmp = dt.Select("fname ='" + fAclid + "'"); if (drTmp != null && drTmp.Length > 0) { for (int i = 0; i < drTmp.Length; i++) { string aclid = drTmp[i]["ACLID"].ToString(); TreeNodeItem item = list.GetItemByAclid(aclid); TreeNode treeNode = new TreeNode(); treeNode.Text = item.Descript; treeNode.Tag = item; //创建子节点 CreateChildNode(treeNode, list, dt, aclid); node.Nodes.Add(treeNode); } } }
public void AddNode(string fromTitle) { TreeNode node = treeView1.SelectedNode; TreeNodeItem nodeItem = new TreeNodeItem(); nodeItem.Aclid = Guid.NewGuid().ToString(); if (node == null) { //创建新的 nodeItem.FName = "root"; } else { if (node.Tag != null) { nodeItem.FName = (node.Tag as TreeNodeItem).Aclid; } } FormAddTreeNode frm = new FormAddTreeNode(); frm.Text = fromTitle; frm.EditNodeItem = nodeItem; if (frm.ShowDialog() == DialogResult.OK) { nodeItem = frm.EditNodeItem; TreeNode nodeTmp = new TreeNode(); nodeTmp.Text = frm.EditNodeItem.Descript; nodeTmp.Tag = frm.EditNodeItem; if (node == null) { treeView1.Nodes.Add(nodeTmp); } else { node.Nodes.Add(nodeTmp); } } }
private void ToolStripMenuItemAddNode_Click(object sender, EventArgs e) { TreeNode node = treeView1.SelectedNode; TreeNodeItem nodeItem = new TreeNodeItem(); nodeItem.Aclid = Guid.NewGuid().ToString(); if (node == null) { //创建新的 nodeItem.FName = "root"; } else { if (node.Tag != null) { nodeItem.FName = (node.Tag as TreeNodeItem).Aclid; } } FormAddTreeNode frm = new FormAddTreeNode(); frm.EditNodeItem = nodeItem; if (frm.ShowDialog() == DialogResult.OK) { nodeItem = frm.EditNodeItem; TreeNode nodeTmp = new TreeNode(); nodeTmp.Text = frm.EditNodeItem.Descript; nodeTmp.Tag = frm.EditNodeItem; if (node == null) { treeView1.Nodes.Add(nodeTmp); } else { node.Nodes.Add(nodeTmp); } } }
private void btnOK_Click(object sender, EventArgs e) { try { if (EditNodeItem == null) { EditNodeItem = new TreeNodeItem(); } EditNodeItem.Aclid = Aclid; EditNodeItem.FName = FAclid; EditNodeItem.Descript = txtDescript.Text; EditNodeItem.DllName = txtDllName.Text; EditNodeItem.Name = txtName.Text; DialogResult = DialogResult.OK; this.Close(); } catch (Exception ex) { MessageBox.Show(ex.Message); } }