国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

Winform Treeview 的按需加載

2019-11-17 02:50:01
字體:
來源:轉載
供稿:網友

Winform Treeview 的按需加載

最近項目里用到treeview,原先設計的是一開始就把所有數據都加載到treeview里,后來發現客戶的數據量實在太大,加載所有數據要2分鐘,這個是客戶沒法接受的。后來就考慮到用戶也不是一開始就要看所有的數據,用戶也是一層一層地展開,所以我們就考慮是不是可以實現以當用戶展開某個結點時才加載當前結點下面的數據。一番查找后,發現treeview有BeforeExpand事件可以實現我們的需求。

下面介紹具體的實現代碼:

1. 首先只加載各部門(結點)的信息

 

  1: List<string> m_Departments = new List<string>() { "湖北.黃石", "湖北.鄂州", "湖北.武漢" };
  2: PRivate void AddDepartMents(List<string> departments)
  3: {
  4:     if (m_Root == null)
  5:     {
  6:         var root = departments[0].Split('.')[0];
  7:         m_Root = new TreeNode(root);
  8:         m_Root.Tag = root;
  9:         treeView1.Nodes.Add(m_Root);
 10:     }
 11: 
 12: 
 13:     foreach (var department in departments)
 14:     {
 15:         var parent = m_Root;
 16:         var dts = department.Split('.');
 17:         for (int i = 1; i < dts.Length; i++)
 18:         {
 19:             if (!m_OrgNodeManager.ContainsKey(dts[i]))
 20:             {
 21:                 var child = new TreeNode(dts[i],1,1);
 22:                 child.Tag = dts[i];
 23:                 child.ToolTipText = department;
 24:                 m_OrgNodeManager.Add(dts[i], child);
 25:                 parent.Nodes.Add(child);
 26:                 parent = child;
 27:             }
 28:         }
 29: 
 30:         parent.Nodes.Add("");
 31:     }
 32: }

 

這里要注意,每個結點加完后,要加上一個空的子結點parent.Nodes.Add(""); 不然就沒有那個加號讓你點了。

 

2. 實現BeforeExpand事件

  1: private void treeView1_BeforeExpand(object sender, TreeViewCancelEventArgs e)
  2: {
  3:     TreeNode curentNode = e.Node;
  4:     if (curentNode.ImageIndex == 1)
  5:     {
  6:         curentNode.Nodes.Clear();
  7:         foreach (var user in m_UserManager)
  8:         {
  9:             if (user.Value.ToString() == curentNode.ToolTipText.ToString())

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 弋阳县| 南丰县| 邵阳市| 康平县| 宁都县| 依安县| 云龙县| 手机| 巫山县| 卢湾区| 安丘市| 河北区| 宜都市| 榆中县| 岳普湖县| 固镇县| 礼泉县| 临武县| 内黄县| 项城市| 湖北省| 肃南| 韶关市| 南丹县| 安宁市| 苍梧县| 北海市| 泾川县| 金华市| 巴里| 揭西县| 江源县| 内黄县| 松桃| 长宁县| 任丘市| 南江县| 嘉禾县| 和政县| 五大连池市| 韶关市|