熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> .NET編程 >> 正文

winform創建樹

2013-11-13 09:45:39  來源: .NET編程 
 數據集的格式如下行的ParentLayNo值等於父節點的LayNo值

  層次編號   父節點編號  

  LayNo       ParentLayNo

              

        

        

  ///

/// 生成樹添加頂級節點 /// 改方法主要用於生成根節點 ///

  用戶TreeView控件 ///

  數據表結果集 public static void createTree(TreeView vTreeView DataTable vDataTable) { DataView vDataView = vDataTableDefaultView; //獲取默認視圖 vDataViewSort = ParentLayNo ASC; //根據父節點字段排序 DataRowView[] arrDRV = vDataViewFindRows(); //樹根節點的父親節點必須是 if (arrDRVLength == ) //如果沒有兒子節點則直接返回 return; TreeNode rootTreeNode = null; foreach (DataRowView vDRV in arrDRV) { rootTreeNode = new TreeNode(vDRVRow[TableConfigT_PUB_NAME[]]ToString());//參數為顯示的信息 vTreeViewNodesAdd(rootTreeNode); String[] arrTag = new String[]; arrTag[] = vDRVRow[rid]ToString(); //流水號 arrTag[] = vDRVRow[LayNo]ToString(); //層次代碼 rootTreeNodeTag = arrTag; CreateTreeNode(vDataView rootTreeNode); } }

  ///

/// 利用遞歸生成樹 /// 改方法主要用於生成根節點的子結點及其子節點的子結點

  //

  獲取默認視圖 ///

  TreeView控件節點引用 private static void CreateTreeNode(DataView vDataView TreeNode parentNode) { DataRowView[] arrDRV = vDataViewFindRows(((String[])parentNodeTag)[]); //找出同一父節點的所有子節點 if (arrDRVLength == ) //如果沒有兒子節點則直接返回 return; TreeNode tmpTreeNode = null; foreach (DataRowView vDRV in arrDRV) { tmpTreeNode = new TreeNode(vDRVRow[TableConfigT_PUB_NAME[]]ToString());//參數為顯示的信息 parentNodeNodesAdd(tmpTreeNode);//添加節點 String[] arrTag = new String[]; arrTag[] = vDRVRow[rid]ToString(); //流水號 唯一值 arrTag[] = vDRVRow[LayNo]ToString(); //層次代碼 tmpTreeNodeTag = arrTag; CreateTreeNode(vDataView tmpTreeNode); //進入遞歸 } }


From:http://tw.wingwit.com/Article/program/net/201311/11514.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.