读出系统表结构,左边生成树型表目录结构,右边生成同步字段信息;左边TreeView控件(树目录)做鼠标单击(键盘光标)事件,当selected位置发生改变时,进行循环判定,右边的字段显示窗口根据 sr_BuiltItem.SetId 进行相应的筛选(select description from sr_SourceItem where SetId = “TreeView_Selectedsr_Builtcollect_Description”);右边同步字段显示框中,做鼠标双击事件进行选取操作,已选取的字段可以通过不同颜色或者在字段前加上 “” 符号标识,根据TreeView数组的排序定位到 “sr_BuiltItem”表中的 “TypeId”,“SetId”。
我自己编的一部份去节点的代码:
private void ShowFrom()

treeView1.Nodes.Clear();
foreach(DataRow dr in ds.Tables[0].Select(""))
{
TreeNode newNode = new TreeNode(dr["Description"].ToString());
treeView1.Nodes.Add(newNode);
foreach(DataRow dr1 in ds.Tables[1].Select(""))
{
TreeNode newNode1= new TreeNode(dr1["Description"].ToString());
treeView1.TopNode.Nodes.Add(newNode1);
}
}
treeView1.Select();
}
可惜子节点循环太多了,希望高手指教。如果能实现其他的内容可以提高到100分。
 

解决方案 »

  1.   

    private void Form2_Load(object sender, System.EventArgs e)
    {
        TreeNode node=new TreeNode("学生信息");
        SqlConnection con=new SqlConnection("server=.;uid=sa;pwd=sa;database=test");
        con.Open();
        SqlCommand cmd=new SqlCommand("select * from stu",con);    IDataReader reader=cmd.ExecuteReader();   if(reader != null);
       {
    while(reader.Read())
    {
        ///treeview
        TreeNode tn=new TreeNode();
        string str=reader.GetInt32(0).ToString();
        str +=reader.GetString(1);
        tn.Text=str;
        node.Nodes.Add(tn);

    }
        }
    this.treeView1.Nodes.Add(node);
    }