| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138 |
- using Core.StlMes.Client.Qcm.model;
- using System;
- using System.Collections.Generic;
- using System.Data;
- using System.Linq;
- using System.Windows.Forms;
- namespace Core.StlMes.Client.Qcm
- {
- public partial class CtrlTreeView : UserControl
- {
- private string _code = "";
- public string NodeCode
- {
- get { return _code; }
- }
- private string _name = "";
- public string NodeName
- {
- get { return _name; }
- }
- public event EventHandler CtrlTreeViewDoubleClick;
- public event TreeViewEventHandler CtrlTreeViewAfterSelect;
- public CtrlTreeView(List<TreeViewEntity> list)
- {
- InitializeComponent();
- List<TreeViewEntity> listTmp = list.AsQueryable().Where(a => a.PCode == "").ToList();
- foreach (TreeViewEntity treeViewEntity in listTmp)
- {
- TreeNode tmpNode = new TreeNode(treeViewEntity.Name);
- tmpNode.Name = treeViewEntity.Code;
- list.Remove(treeViewEntity);
- treeView1.Nodes.Add(tmpNode);
- if (treeViewEntity.Name == _code)
- {
- treeView1.SelectedNode = tmpNode;
- }
- InitTreeView(tmpNode, list);
- }
- }
- //private TreeNode GetTreeViewNode(List<TreeViewEntity> list, string code)
- //{
- // List<string> listKeys = GetTreeViewNodeKeys(list, code);
- // TreeNodeCollection nodes = treeView1.Nodes;
- // nodes[listKeys[listKeys.Count - 1]].ExpandAll();
- // for (int i = listKeys.Count - 1; i >= 0; i--)
- // {
- // nodes = nodes[listKeys[i]].Nodes;
- // }
- // return nodes[code];
- //}
- //private List<string> GetTreeViewNodeKeys(List<TreeViewEntity> list, string code)
- //{
- // List<string> listKeys = new List<string>();
- // IQueryable<TreeViewEntity> queryable = list.AsQueryable();
- // int parentCnt = 1;
- // string parentCode = "";
- // TreeViewEntity[] treeViewEntitys = queryable.Where(a => a.Code == code).ToArray();
- // while (treeViewEntitys.Length > 0)
- // {
- // parentCode = treeViewEntitys[0].PCode;
- // parentCnt = queryable.Where(a => a.Code == parentCode).Count();
- // listKeys.Add(parentCode);
- // treeViewEntitys = queryable.Where(a => a.Code == parentCode).ToArray();
- // }
- // return listKeys;
- //}
- private void InitTreeView(TreeNode node, List<TreeViewEntity> list)
- {
- List<TreeViewEntity> listTmp = list.AsQueryable().Where(a => a.PCode == node.Name).ToList();
- foreach (TreeViewEntity treeViewEntity in listTmp)
- {
- TreeNode tmpNode = new TreeNode(treeViewEntity.Name);
- tmpNode.Name = treeViewEntity.Code;
- list.Remove(treeViewEntity);
- node.Nodes.Add(tmpNode);
- if (treeViewEntity.Name == _code)
- {
- treeView1.SelectedNode = tmpNode;
- }
- InitTreeView(tmpNode, list);
- }
- }
- private void treeView1_DoubleClick(object sender, EventArgs e)
- {
- _code = treeView1.SelectedNode.Name;
- _name = treeView1.SelectedNode.Text;
- if (CtrlTreeViewDoubleClick != null)
- {
- CtrlTreeViewDoubleClick(sender, e);
- }
- }
- public void SetTreeViewNodeSelected(string code)
- {
- if (code == "") treeView1.CollapseAll();
- foreach (TreeNode node in treeView1.Nodes)
- {
- if (node.Name == code) treeView1.SelectedNode = node;
- else
- {
- TreeNode tmpNode = ForeachTreeView(node, code);
- if (tmpNode == null) continue;
- else treeView1.SelectedNode = tmpNode;
- }
- }
- }
- private TreeNode ForeachTreeView(TreeNode node, string code)
- {
- foreach (TreeNode tmpNode in node.Nodes)
- {
- if (tmpNode.Name == code) return tmpNode;
- else
- {
- TreeNode tmp2Node = ForeachTreeView(tmpNode, code);
- if (tmp2Node == null) continue;
- else return tmp2Node;
- }
- }
- return null;
- }
- private void treeView1_AfterSelect(object sender, TreeViewEventArgs e)
- {
- if (CtrlTreeViewAfterSelect != null)
- {
- CtrlTreeViewAfterSelect(sender, e);
- }
- }
- }
- }
|