




免費預(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.當(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é)點標志(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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年CPSM全能復(fù)習(xí)試題及答案
- 《讀懂孩子的心》閱讀心得
- 交通法規(guī)對物流的影響及試題及答案
- 2024年國際物流師備考的特色方法試題及答案
- 明確目標的2024年CPMM試題及答案
- CPSM考試資料使用與試題及答案
- 電商網(wǎng)站內(nèi)容優(yōu)化策略試題及答案
- 《安全工程師》南溪縣2024年臨考沖刺試卷含解析
- 重慶市萬州龍駒中學(xué)2025屆高考化學(xué)押題試卷含解析
- 2025年球墨鑄鐵件項目投資風(fēng)險評估報告
- 失血性休克應(yīng)急預(yù)案及處理流程
- 邊坡被動防護網(wǎng)的施工細則
- 少兒繪畫之《春江水暖鴨先知》
- 2022中醫(yī)醫(yī)院章程(完整版)
- 2020 ACLS-PC-SA課前自我測試試題及答案
- QGDW 1168-2013 輸變電設(shè)備狀態(tài)檢修試驗規(guī)程(高清版)
- 10000中國普通人名大全
- 第二代身份證號碼驗證器
- 市場調(diào)查與預(yù)測復(fù)習(xí)資料
- GB_T 229-2020 金屬材料夏比擺錘沖擊試驗方法
- 施工組織設(shè)計雙代號時標網(wǎng)絡(luò)圖
評論
0/150
提交評論