




免費預(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é)點的標(biāo)記 /法一:用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.當(dāng)一個節(jié)點有對應(yīng)鏈接資料時,不可以增加子節(jié)點 /2.當(dāng)一個節(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號碼,也就是當(dāng)前選定節(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é)點標(biāo)志(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)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年安全評價師(高級)職業(yè)技能鑒定案例分析解析冊
- 2025年消防執(zhí)業(yè)資格考試題庫:消防應(yīng)急救援戰(zhàn)例分析實戰(zhàn)演練試卷
- 2025年美術(shù)教師編制考試模擬試卷:美術(shù)教育心理學(xué)研究與應(yīng)用試題
- 2025年CPE考試試卷:寫作思路引導(dǎo)與2025年考試熱點話題分析
- 語文課上難忘的一件事周記(13篇)
- 2025年輕油蒸汽轉(zhuǎn)化催化劑項目提案報告
- 2025年草除靈乙酯項目申請報告
- 2025年一建考試機電工程經(jīng)濟與造價管理實戰(zhàn)案例分析試題卷
- 2025年物業(yè)管理師考試物業(yè)管理物業(yè)設(shè)施運行管理實施改進報告反思試卷
- 在閱讀中發(fā)現(xiàn)美好閱讀感悟作文8篇
- (三級)人工智能訓(xùn)練師職業(yè)技能鑒定理論考試題(附答案)
- 2025杭州市臨安區(qū)事業(yè)單位招聘80人考前自測高頻考點模擬試題附答案詳解(鞏固)
- 2025年北京二十中中考英語零模試卷
- 護理服務(wù)質(zhì)量提升路徑與實踐
- 國有資產(chǎn)管理清查報告編寫指南
- 糞肥還田協(xié)議書范本
- 商務(wù)數(shù)據(jù)分析-形考作業(yè)4(第5章)-國開(ZJ)-參考資料
- 有機合成與推斷綜合大題(解析版)
- 智能客服語音識別技術(shù)在醫(yī)療行業(yè)的應(yīng)用現(xiàn)狀與發(fā)展報告
- 工勤技師考試試題及答案
- 2025年全國制冷與空調(diào)設(shè)備安裝修理作業(yè)證考試題庫(800題)含答案
評論
0/150
提交評論