免費(fèi)預(yù)覽已結(jié)束,剩余1頁(yè)可下載查看
下載本文檔
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、加載樹(shù)節(jié)點(diǎn)的方法(無(wú)級(jí)限) / / 加載樹(shù)節(jié)點(diǎn)。建樹(shù)的基本思路是:從根節(jié)點(diǎn)開(kāi)始遞歸調(diào)用顯示子樹(shù)。 / / 是DataTable類型的保存樹(shù)節(jié)點(diǎn)的數(shù)據(jù)表 / 數(shù)據(jù)表中保存節(jié)點(diǎn)的列名稱 / 數(shù)據(jù)表中保存節(jié)點(diǎn)父節(jié)點(diǎn)的列名稱 / 數(shù)據(jù)表中保存節(jié)點(diǎn)名稱的列名稱 / 表示TreeView.Nodes對(duì)象的集合 / 定義根節(jié)點(diǎn)的父節(jié)點(diǎn)的標(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); 注意:以下為彈出菜單項(xiàng)代碼及相關(guān)的函數(shù)和方法2、增加根節(jié)點(diǎn)private void menuItemAddRoot_Click(object sender, System.EventArgs e) try TreeNode treeNode=new TreeNode(新節(jié)點(diǎn)); 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é)點(diǎn)的選定操作 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é)點(diǎn)private void menuItemAddChild_Click(object sender, System.EventArgs e) try /1.當(dāng)一個(gè)節(jié)點(diǎn)有對(duì)應(yīng)鏈接資料時(shí),不可以增加子節(jié)點(diǎn) /2.當(dāng)一個(gè)節(jié)點(diǎn)有對(duì)應(yīng)鏈接資料時(shí),可以增加圖片 if (this.IsHaveLineData(dataSet.Tablesdata,this.richTextBoxId) MessageBox.Show(this,要增加子節(jié)點(diǎn),必須在這個(gè)節(jié)點(diǎn)沒(méi)有可以鏈接的資料后才可以增加!,操作錯(cuò)誤,MessageBoxButtons.OK,MessageBoxIcon.Information ); return; TreeNode treeNode=new TreeNode(新節(jié)點(diǎn)); 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é)點(diǎn)的選定操作 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é)點(diǎn)private void menuItemAddBorther_Click(object sender, System.EventArgs e) try /判斷是否選定組件中的根節(jié)點(diǎn) if (treeView.SelectedNode.Parent=null) MessageBox.Show (節(jié)點(diǎn)為根節(jié)點(diǎn),要加入兄弟節(jié)點(diǎn),請(qǐng)使用加入根節(jié)點(diǎn)選項(xiàng)! , Information , MessageBoxButtons.OK , MessageBoxIcon.Information ) ; return; TreeNode treeNode=new TreeNode(新節(jié)點(diǎn)); 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é)點(diǎn)的選定操作 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é)點(diǎn)private void menuItemDelete_Click(object sender, System.EventArgs e) try if(MessageBox.Show(this,刪除節(jié)點(diǎn)+treeView.SelectedNode.Text.Trim()+,與其對(duì)應(yīng)的信息也將被刪除,你確定要?jiǎng)h除嗎?,Information,MessageBoxButtons.OKCancel,MessageBoxIcon.Question)=DialogResult.OK) /判斷選定的節(jié)點(diǎn)是否存在下一級(jí)節(jié)點(diǎn) if ( treeView.SelectedNode.Nodes.Count = 0 ) /刪除節(jié)點(diǎn) 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 ( 請(qǐng)先刪除此節(jié)點(diǎn)中的子節(jié)點(diǎn)! , Information , MessageBoxButtons.OK , MessageBoxIcon.Information ) ; catch(Exception te) MessageBox.Show(this,te.Message,ErrorDelete,MessageBoxButtons.OK,MessageBoxIcon.Warning); 6、節(jié)點(diǎn)重命名 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號(hào)碼,也就是當(dāng)前選定節(jié)點(diǎn)的tag / / 數(shù)據(jù)表 / 數(shù)據(jù)列 / 最大NodeID號(hào)碼 private int MaxRecordNumber(DataTable dt,string columnName) int number=0; DataView dv=dt.DefaultView; dv.Sort=columnName+ ASC;/一個(gè)字符串,它包含列名,后跟“ASC”(升序)或“DESC”(降序)。在默認(rèn)情況下,列按升序排列。多個(gè)列可用逗號(hào)隔開(kāi)。 foreach(DataRow dr in dt.Rows) number=Convert.ToInt16(drcolumnName.ToString().Trim()number?Convert.ToInt16(drcolumnName.ToString().Trim():number; return number; / / 在數(shù)據(jù)表中增加節(jié)點(diǎn)或刪除節(jié)點(diǎn) / / 要增加或刪除的節(jié)點(diǎn) / 要增加或刪除節(jié)點(diǎn)的父節(jié)點(diǎn) / 增刪節(jié)點(diǎn)標(biāo)志(add為增加節(jié)點(diǎn),delete為刪除節(jié)點(diǎn),不區(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. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 專業(yè)服務(wù)協(xié)議續(xù)簽文檔:保障雙方權(quán)益(2024版)版
- 2024年05月上海中國(guó)銀聯(lián)“銀星”實(shí)習(xí)生招考筆試歷年參考題庫(kù)附帶答案詳解
- 2025年度軍事工程專用鋼管扣件運(yùn)輸安全保密協(xié)議3篇
- 2025年度合同封面定制與法律風(fēng)險(xiǎn)防控策略合同3篇
- 專項(xiàng)補(bǔ)充貸款協(xié)議規(guī)范示例2024一
- 2025年度產(chǎn)品陳列與品牌形象提升協(xié)議書3篇
- 2025年廠房建筑合同范本:廠房建筑與環(huán)保驗(yàn)收合同規(guī)范4篇
- 2025年產(chǎn)業(yè)園區(qū)場(chǎng)地租賃與產(chǎn)業(yè)金融服務(wù)合同4篇
- 醫(yī)療安全知識(shí)培訓(xùn)
- 2025年度虛擬現(xiàn)實(shí)產(chǎn)品設(shè)計(jì)保密合同(全新版)4篇
- 部編新改版語(yǔ)文一年級(jí)下冊(cè)《語(yǔ)文園地四》教學(xué)設(shè)計(jì)
- 2025年北京鐵路局集團(tuán)招聘筆試參考題庫(kù)含答案解析
- 《藥品招商營(yíng)銷概論》課件
- 曙光磁盤陣列DS800-G10售前培訓(xùn)資料V1.0
- 寺廟祈?;顒?dòng)方案(共6篇)
- 2025年病案編碼員資格證試題庫(kù)(含答案)
- 企業(yè)財(cái)務(wù)三年戰(zhàn)略規(guī)劃
- 提高膿毒性休克患者1h集束化措施落實(shí)率
- 山東省濟(jì)南市天橋區(qū)2024-2025學(xué)年八年級(jí)數(shù)學(xué)上學(xué)期期中考試試題
- 主播mcn合同模板
- 2024測(cè)繪個(gè)人年終工作總結(jié)
評(píng)論
0/150
提交評(píng)論