動態(tài)加載樹----treeView
2024-07-21 02:17:13
供稿:網(wǎng)友
 
動態(tài)加載樹
陳根發(fā)
 
命題:從數(shù)據(jù)庫讀取字段值作為樹的節(jié)點
 
實現(xiàn):
一.把字段值取出放到dataset 中
二.添加一個根節(jié)點
三.添加相應(yīng)的子節(jié)點
 
代碼如下
using system;
using system.drawing;
using system.collections;
using system.componentmodel;
using system.windows.forms;
using system.data;
 
namespace windowsapplication3
{
 /// <summary>
 /// form1 的摘要說明。
 /// </summary>
 public class form1 : system.windows.forms.form
 {
 private system.windows.forms.treeview treeview1;
 /// <summary>
 /// 必需的設(shè)計器變量。
 /// </summary>
 private system.componentmodel.container components = null;
 
 public form1()
 {
 //
 // windows 窗體設(shè)計器支持所必需的
 //
 initializecomponent();
 
 //
 // todo: 在 initializecomponent 調(diào)用后添加任何構(gòu)造函數(shù)代碼
 //
 }
 
 /// <summary>
 /// 清理所有正在使用的資源。
 /// </summary>
 protected override void dispose( bool disposing )
 {
 if( disposing )
 {
 if (components != null) 
 {
 components.dispose();
 }
 }
 base.dispose( disposing );
 }
 
 #region windows 窗體設(shè)計器生成的代碼
 /// <summary>
 /// 設(shè)計器支持所需的方法 - 不要使用代碼編輯器修改
 /// 此方法的內(nèi)容。
 /// </summary>
 private void initializecomponent()
 {
 this.treeview1 = new system.windows.forms.treeview();
 this.suspendlayout();
 // 
 // treeview1
 // 
 this.treeview1.dock = system.windows.forms.dockstyle.bottom;
 this.treeview1.imageindex = -1;
 this.treeview1.location = new system.drawing.point(0, 137);
 this.treeview1.name = "treeview1";
 this.treeview1.selectedimageindex = -1;
 this.treeview1.size = new system.drawing.size(352, 136);
 this.treeview1.tabindex = 0;
 this.treeview1.afterselect += new system.windows.forms.treevieweventhandler(this.treeview1_afterselect);
 // 
 // form1
 // 
 this.autoscalebasesize = new system.drawing.size(6, 14);
 this.clientsize = new system.drawing.size(352, 273);
 this.controls.add(this.treeview1);
 this.name = "form1";
 this.text = "form1";
 this.load += new system.eventhandler(this.form1_load);
 this.resumelayout(false);
 
 }
 #endregion
 
 /// <summary>
 /// 應(yīng)用程序的主入口點。
 /// </summary>
 [stathread]
 static void main() 
 {
 application.run(new form1());
 }
 
 private void treeview1_afterselect(object sender, system.windows.forms.treevieweventargs e)
 {
 
 }
 
 private void form1_load(object sender, system.eventargs e)
 {
 showform();
 }
 private void showform ()
{
 treeview1.nodes.clear() ;
 system.windows.forms.treenode mnode=new treenode("全部");
 //mnode.imageindex =1;
 treeview1.nodes.add(mnode) ;
 //假設(shè)dataset 已經(jīng)取得
 system.windows.forms.treenode nnode=new treenode("在職");
 system.windows.forms.treenode pnode=new treenode("離職");
 treeview1.topnode.nodes.add(nnode) ;
 treeview1.topnode.nodes.add(pnode) ;
 treeview1.select ();
 if (ds.tables [0].rows.count <=0 )
 {
 return;
 }
 else
 {
 // add add some childtreenodes
 
 foreach(datarow dr in ds.tables [0].rows )
 {
 
system.windows.forms.treenode anode=new treenode(dr["name"].tostring() );
system.windows.forms.treenode bnode=new treenode(dr["name"].tostring());
 treeview1.nodes [0].nodes[0].nodes .add (anode);
 treeview1.nodes [0].nodes[1].nodes .add (bnode);
 }
 }
}
 
 }
}
 好了,節(jié)點的值就是字段值!