最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Winform中Treeview實現(xiàn)按需加載的方法

 更新時間:2014年10月16日 08:57:06   投稿:shichen2014  
這篇文章主要介紹了Winform中Treeview實現(xiàn)按需加載的方法,針對大數(shù)據(jù)量的情況下非常具有實用價值,需要的朋友可以參考下

本文實例講述了Winform中Treeview實現(xiàn)按需加載的方法,非常具有實用價值。分享給大家供大家參考。具體分析如下:

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

下面介紹具體的實現(xiàn)代碼:

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

復制代碼 代碼如下:
List<string> m_Departments = new List<string>() { "湖北.黃石", "湖北.鄂州", "湖北.武漢" };
private void AddDepartMents(List<string> departments)
{
     if (m_Root == null)
     {
         var root = departments[0].Split('.')[0];
         m_Root = new TreeNode(root);
         m_Root.Tag = root;
         treeView1.Nodes.Add(m_Root);
     }
     foreach (var department in departments)
     {
         var parent = m_Root;
         var dts = department.Split('.');
         for (int i = 1; i < dts.Length; i++)
         {
             if (!m_OrgNodeManager.ContainsKey(dts[i]))
             {
                 var child = new TreeNode(dts[i],1,1);
                 child.Tag = dts[i];
                 child.ToolTipText = department;
                 m_OrgNodeManager.Add(dts[i], child);
                 parent.Nodes.Add(child);
                 parent = child;
             }
         }
         parent.Nodes.Add("");
     }
}

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

2. 實現(xiàn)BeforeExpand事件

復制代碼 代碼如下:
private void treeView1_BeforeExpand(object sender, TreeViewCancelEventArgs e)
{
     TreeNode curentNode = e.Node;
     if (curentNode.ImageIndex == 1)
     {
         curentNode.Nodes.Clear();
         foreach (var user in m_UserManager)
         {
             if (user.Value.ToString() == curentNode.ToolTipText.ToString())
             {
                 TreeNode userNode = new TreeNode(user.Key);
                 curentNode.Nodes.Add(userNode);
             }
         }
     }
}

希望本文所述對大家的C#程序設計有所幫助。

相關文章

  • C# File類中的文件讀寫方法詳解

    C# File類中的文件讀寫方法詳解

    C#提供了多種操作文件的方案,尤其是File類中封裝的靜態(tài)方法,本文將通過一些簡單的示例為大家講講C#讀寫文件的方法,需要的可以參考一下
    2023-05-05
  • C#實現(xiàn)提高xml讀寫速度的方法

    C#實現(xiàn)提高xml讀寫速度的方法

    這篇文章主要介紹了C#實現(xiàn)提高xml讀寫速度的方法,并且針對各類文件的讀寫做了較為細致的分析,非常實用,需要的朋友可以參考下
    2014-11-11
  • C#異步原理詳情

    C#異步原理詳情

    這篇文章主要介紹了C#異步原理,C#異步在C#5便發(fā)布了,是利用async關鍵字和await表達式表達的異步操作,下面文章下邊將詳細向大家介紹C#異步原理,感興趣得小伙伴可以參考一下
    2021-10-10
  • c#語言入門類型和成員

    c#語言入門類型和成員

    這篇文章主要介紹了c#語言入門類型和成員,類 是最基本的 C# 類型。 類是一種數(shù)據(jù)結構,可在一個單元中就將狀態(tài)和操作結合起來。 類為類實例提供了定義。類支持繼承和多形性,即派生類 以擴展和專門針對基類的機制,下面來看看文章的詳細介紹
    2021-12-12
  • C#利用ms office實現(xiàn)office轉pdf的示例代碼

    C#利用ms office實現(xiàn)office轉pdf的示例代碼

    這篇文章主要介紹了C#利用ms office實現(xiàn)office轉pdf的詳細方法,文中通過代碼示例和圖文講解的非常詳細,對大家的學習或工作有一定的幫助,需要的朋友可以參考下
    2024-09-09
  • C#使用DirectX.DirectSound播放語音

    C#使用DirectX.DirectSound播放語音

    這篇文章主要為大家詳細介紹了C#使用DirectX.DirectSound播放語音,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-03-03
  • 講解.NET環(huán)境下繪制模糊數(shù)學中隸屬函數(shù)分布圖

    講解.NET環(huán)境下繪制模糊數(shù)學中隸屬函數(shù)分布圖

    講解.NET環(huán)境下繪制模糊數(shù)學中隸屬函數(shù)分布圖...
    2007-11-11
  • C#對桌面應用程序自定義鼠標光標

    C#對桌面應用程序自定義鼠標光標

    這篇文章介紹了C#對桌面應用程序自定義鼠標光標的方法,文中通過示例代碼介紹的非常詳細。對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-06-06
  • C#處理Paint事件的方法

    C#處理Paint事件的方法

    這篇文章主要介紹了C#處理Paint事件的方法,實例分析了C#使用Paint進行圖形繪制的技巧,需要的朋友可以參考下
    2015-06-06
  • C#中IsNullOrEmpty和IsNullOrWhiteSpace的使用方法及區(qū)別解析

    C#中IsNullOrEmpty和IsNullOrWhiteSpace的使用方法及區(qū)別解析

    今天我們將探討C#中兩個常用的字符串處理方法:IsNullOrEmpty和IsNullOrWhiteSpace,本文中,我們將詳細解釋這兩個方法的功能和使用場景,并幫助您更好地理解它們之間的區(qū)別,本文結合實例代碼給大家介紹的非常詳細,需要的朋友參考下吧
    2023-07-07

最新評論

漠河县| 曲阜市| 登封市| 达日县| 元谋县| 桃江县| 安康市| 招远市| 玉屏| 邵阳市| 时尚| 广水市| 九龙县| 绩溪县| 恩施市| 安岳县| 迁西县| 龙江县| 禹州市| 宁陵县| 泌阳县| 万盛区| 从江县| 双桥区| 环江| 搜索| 贵南县| 钦州市| 沾化县| 宁城县| 澄迈县| 柳河县| 台东市| 海南省| 金坛市| 西安市| 封丘县| 青龙| 当涂县| 萨迦县| 岳阳县|