回复 第4楼 小仙 的帖子
这是部分代码
有一个区域表,表中有区域ID和区域名称两个字段
TreeView的名字是通过读取区域表的'区域名称'来动态创建的的 ,区域表中有几条记录就创建几个TreeView
还有一个网吧信息表,字段有网吧信息ID,网吧名称,和区域ID
TreeView的父节点名称也是区域表的名称,子节点是读取网吧信息表的网吧名称
还有一个用户权利表 表中有个角色名称、区域名称和网吧信息
我想实现的是单击一个Button按钮把TreeView的父节点名称存到用户权利表中的区域名称中去,把子节点存到网吧名称中去
/// <summary>
/// 获取全部区域
/// </summary>
private void getRegion()
{
DataSet ds = new DataSet();
DRegion dreg = new DRegion();
int intID = 0;
string strName = "";
ds = dreg.GetList("");
for (int i=0;i< ds.Tables[0].Rows.Count;i++)
{
intID = Convert.ToInt32(ds.Tables[0].Rows[i]["id"].ToString());
strName = ds.Tables[0].Rows[i]["name"].ToString();
getNet(intID, strName,i);
}
}
/// <summary>
/// 获取所选区域的网吧信息并创建TreeView
/// </summary>
/// <param name="regionID">区域ID</param>
/// <param name="regionName">区域名称</param>
/// <param name="j">记录第几个区域</param>
private void getNet(int regionID,string regionName ,int j)
{
DNetInfo dnet = new DNetInfo();
DataSet ds1 = new DataSet();
//读取网吧信息表的信息
ds1= dnet.GetList("regionId="+regionID+"");
//创建TreeView,并初化TreeView的数据
TreeView tt = new TreeView();
tt.Name = regionName;
tt.Location = new Point(120 * j, 0);
tt.Size = new System.Drawing.Size(120, splitContainer1.Panel2.Height);
tt.Anchor = ((AnchorStyles)(((AnchorStyles.Top | AnchorStyles.Bottom)|AnchorStyles.Left)));
tt.CheckBoxes = true;
splitContainer1.Panel2.Controls.Add(tt);
//创建父节点
TreeNode tn = new TreeNode();
tn.Name =Convert.ToString( regionID);
tn.Text = regionName;
tt.Nodes.Add(tn);
TreeNode to;
//遍历子节点
for (int i = 0; i < ds1.Tables[0].Rows.Count; i++)
{
to = new TreeNode();
to.Name = ds1.Tables[0].Rows[i]["id"].ToString();
to.Text = ds1.Tables[0].Rows[i]["name"].ToString();
tt.Nodes[0].Nodes.Add(to);
}
tt.Nodes[0].Expand();
// 为所创建的TreeView添加事件
tt.AfterCheck += new System.Windows.Forms.TreeViewEventHandler(treeView1_AfterCheck);
tt.MouseDown += new System.Windows.Forms.MouseEventHandler(this.treeView1_MouseDown);
}