




免費預(yù)覽已結(jié)束,剩余1頁可下載查看
下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、加載樹節(jié)點的方法(無級限) / / 加載樹節(jié)點。建樹的基本思路是:從根節(jié)點開始遞歸調(diào)用顯示子樹。 / / 是DataTable類型的保存樹節(jié)點的數(shù)據(jù)表 / 數(shù)據(jù)表中保存節(jié)點的列名稱 / 數(shù)據(jù)表中保存節(jié)點父節(jié)點的列名稱 / 數(shù)據(jù)表中保存節(jié)點名稱的列名稱 / 表示TreeView.Nodes對象的集合 / 定義根節(jié)點的父節(jié)點的標記 /法一:用DataView public static void InitTree(DataTable dt,string nodeID,string parentID,string nodeName,TreeNodeCollection treeNodeCollection,string rootNodeTag) try TreeNode tmpNode; DataView dv=new DataView(); dv.Table=dt; if (rootNodeTag!=|rootNodeTag!=null) dv.RowFilter=parentID+=+rootNodeTag+; foreach(DataRowView drv in dv) tmpNode=new TreeNode(); tmpNode.Text=drvnodeName.ToString(); tmpNode.Tag=drvnodeID; string father=drvnodeID.ToString(); treeNodeCollection.Add(tmpNode); InitTree(dt,nodeID,parentID,nodeName,tmpNode.Nodes,father); catch(Exception te) MessageBox.Show(te.Message,Error,MessageBoxButtons.OK,MessageBoxIcon.Warning); 注意:以下為彈出菜單項代碼及相關(guān)的函數(shù)和方法2、增加根節(jié)點private void menuItemAddRoot_Click(object sender, System.EventArgs e) try TreeNode treeNode=new TreeNode(新節(jié)點); treeNode.Tag=MaxRecordNumber(dataSet.Tablestree,NodeID)+1; this.treeView.Nodes.Add(treeNode); AddDeleteNode(treeNode,RootNodeTag,Add); treeView.SelectedNode = treeNode ; LoadTreeView.LoadTreeNodeImage(treeView.SelectedNode,this.imageList1,NodeImageMode); /執(zhí)行指定節(jié)點的選定操作 this.treeViewAfterSelect(treeView.SelectedNode ); menuItemRename_Click(new object(),new System.EventArgs(); catch(Exception te) MessageBox.Show(this,te.Message,ErrorRoot,MessageBoxButtons.OK,MessageBoxIcon.Warning); 3、增加子節(jié)點private void menuItemAddChild_Click(object sender, System.EventArgs e) try /1.當一個節(jié)點有對應(yīng)鏈接資料時,不可以增加子節(jié)點 /2.當一個節(jié)點有對應(yīng)鏈接資料時,可以增加圖片 if (this.IsHaveLineData(dataSet.Tablesdata,this.richTextBoxId) MessageBox.Show(this,要增加子節(jié)點,必須在這個節(jié)點沒有可以鏈接的資料后才可以增加!,操作錯誤,MessageBoxButtons.OK,MessageBoxIcon.Information ); return; TreeNode treeNode=new TreeNode(新節(jié)點); treeNode.Tag=MaxRecordNumber(dataSet.Tablestree,NodeID)+1; treeView.SelectedNode.Nodes.Add(treeNode); AddDeleteNode(treeNode,treeView.SelectedNode.Tag.ToString(),Add); treeView.SelectedNode = treeNode ; LoadTreeView.LoadTreeNodeImage(treeView.SelectedNode,this.imageList1,NodeImageMode); /執(zhí)行指定節(jié)點的選定操作 this.treeViewAfterSelect(treeView.SelectedNode ); menuItemRename_Click(new object(),new System.EventArgs(); catch(Exception te) MessageBox.Show(this,te.Message,ErrorChild,MessageBoxButtons.OK,MessageBoxIcon.Warning); 4、增加兄弟節(jié)點private void menuItemAddBorther_Click(object sender, System.EventArgs e) try /判斷是否選定組件中的根節(jié)點 if (treeView.SelectedNode.Parent=null) MessageBox.Show (節(jié)點為根節(jié)點,要加入兄弟節(jié)點,請使用加入根節(jié)點選項! , Information , MessageBoxButtons.OK , MessageBoxIcon.Information ) ; return; TreeNode treeNode=new TreeNode(新節(jié)點); treeNode.Tag=MaxRecordNumber(dataSet.Tablestree,NodeID)+1; treeView.SelectedNode.Parent.Nodes.Add(treeNode); AddDeleteNode(treeNode,treeView.SelectedNode.Parent.Tag.ToString().Trim(),Add); treeView.SelectedNode = treeNode ; LoadTreeView.LoadTreeNodeImage(treeView.SelectedNode,this.imageList1,NodeImageMode); /執(zhí)行指定節(jié)點的選定操作 this.treeViewAfterSelect(treeView.SelectedNode ); menuItemRename_Click(new object(),new System.EventArgs(); catch(Exception te) MessageBox.Show(this,te.Message,ErrorParent,MessageBoxButtons.OK,MessageBoxIcon.Warning); 5、刪除節(jié)點private void menuItemDelete_Click(object sender, System.EventArgs e) try if(MessageBox.Show(this,刪除節(jié)點+treeView.SelectedNode.Text.Trim()+,與其對應(yīng)的信息也將被刪除,你確定要刪除嗎?,Information,MessageBoxButtons.OKCancel,MessageBoxIcon.Question)=DialogResult.OK) /判斷選定的節(jié)點是否存在下一級節(jié)點 if ( treeView.SelectedNode.Nodes.Count = 0 ) /刪除節(jié)點 TreeNode deleNode=treeView.SelectedNode; if (File.Exists(this.richTextBoxPictureName) File.Delete(this.richTextBoxPictureName); int rows=myBindTree.Position; treeView.Nodes.Remove(deleNode); dataSet.Tablestree.Rowsrows.Delete(); else MessageBox.Show ( 請先刪除此節(jié)點中的子節(jié)點! , Information , MessageBoxButtons.OK , MessageBoxIcon.Information ) ; catch(Exception te) MessageBox.Show(this,te.Message,ErrorDelete,MessageBoxButtons.OK,MessageBoxIcon.Warning); 6、節(jié)點重命名 private void menuItemRename_Click(object sender, System.EventArgs e) TreeNode mySelectedNode=treeView.SelectedNode; if (mySelectedNode!=null) treeView.SelectedNode=mySelectedNode; treeView.LabelEdit=true; mySelectedNode.BeginEdit(); else MessageBox.Show(No tree node selected .n,Invalid selection); / / 返回指定表的最大NodeID號碼,也就是當前選定節(jié)點的tag / / 數(shù)據(jù)表 / 數(shù)據(jù)列 / 最大NodeID號碼 private int MaxRecordNumber(DataTable dt,string columnName) int number=0; DataView dv=dt.DefaultView; dv.Sort=columnName+ ASC;/一個字符串,它包含列名,后跟“ASC”(升序)或“DESC”(降序)。在默認情況下,列按升序排列。多個列可用逗號隔開。 foreach(DataRow dr in dt.Rows) number=Convert.ToInt16(drcolumnName.ToString().Trim()number?Convert.ToInt16(drcolumnName.ToString().Trim():number; return number; / / 在數(shù)據(jù)表中增加節(jié)點或刪除節(jié)點 / / 要增加或刪除的節(jié)點 / 要增加或刪除節(jié)點的父節(jié)點 / 增刪節(jié)點標志(add為增加節(jié)點,delete為刪除節(jié)點,不區(qū)分大小寫) private void AddDeleteNode(TreeNode addDeleteNode,string parentNodeId,string AddDeleteTag) try if(AddDeleteTag.ToUpper()=ADD) object key=parentNodeId; DataRow dr=dataSet.Tablestree.Rows.Find(key); DataRow drNew=dataSet.Tablestree.NewRow(); if(dr!=null) drNewParentID=drNodeID; else drNewParentID=RootNodeTag; drNewNodeID=(int)addDeleteNode.Tag; drNewNod
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 統(tǒng)編版語文四年級上冊第三單元習作:寫觀察日記 課件
- 2025年低壓電工作業(yè)模擬考試100題及答案
- 甘肅省定西市安定區(qū)城區(qū)三校聯(lián)考2025年九年級下學期中考三模數(shù)學試卷(含圖片答案)
- 初中數(shù)學九年級下冊統(tǒng)編教案 6.4探索三角形相似的條件(第4課時)
- 江蘇省南京師范大學附屬中學高三4月模擬地理試題(含答案)
- 鄉(xiāng)村振興培訓(xùn)試題及答案
- 物流會計試題及答案
- 2025年湖北省黃石市黃石港區(qū)部分學校中考第二次模擬考試生物試題 (含答案)
- 2024-2025學年度寧夏回族自治區(qū)銀川市永寧縣永寧中學高二第二學期期中考試歷史試題(含答案)
- 加強工程設(shè)計企業(yè)的跨部門協(xié)作與溝通機制
- 2025商務(wù)英語(BEC)中級考試真題卷:模擬試題及答案解析
- 陜西省煙草專賣局(公司)筆試試題2024
- 2024年中考一模 英語(湖北統(tǒng)考專用)(考試版A4)
- 油田數(shù)字化運維理論考試題庫-上(單選題)
- 護理教育程序
- 2025年05月廣西百色干部學院公開招聘編外工作人員8人筆試歷年典型考題(歷年真題考點)解題思路附帶答案詳解
- 老年患者護理中的并發(fā)癥預(yù)防及處理措施
- 湖北省武漢市武昌區(qū)2025屆高三5月質(zhì)量檢測考試語文及參考答案
- 核電站鋼板混凝土結(jié)構(gòu)技術(shù)標準
- 《兒童健康保障課件:理性選擇與購買策略》
- 新能源安規(guī)試題及答案
評論
0/150
提交評論