动态加载树----treeView
2024-07-21 02:17:13
供稿:网友
动态加载树
陈根发
命题:从数据库读取字段值作为树的节点
实现:
一.把字段值取出放到dataset 中
二.添加一个根节点
三.添加相应的子节点
代码如下
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>
/// 必需的设计器变量。
/// </summary>
private system.componentmodel.container components = null;
public form1()
{
//
// windows 窗体设计器支持所必需的
//
initializecomponent();
//
// todo: 在 initializecomponent 调用后添加任何构造函数代码
//
}
/// <summary>
/// 清理所有正在使用的资源。
/// </summary>
protected override void dispose( bool disposing )
{
if( disposing )
{
if (components != null)
{
components.dispose();
}
}
base.dispose( disposing );
}
#region windows 窗体设计器生成的代码
/// <summary>
/// 设计器支持所需的方法 - 不要使用代码编辑器修改
/// 此方法的内容。
/// </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>
/// 应用程序的主入口点。
/// </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) ;
//假设dataset 已经取得
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);
}
}
}
}
}
好了,节点的值就是字段值!