c#窗口编程入门[001]--TreeView控件

来源:互联网 发布:网络拓扑发现 编辑:程序博客网 时间:2024/06/06 00:27

我也是一个初学者,下面是我的TreeView控件的学习经验! 

        TreeView有一个Tag属性,可以包含一个object对象,我估计他的作用就是Delphi中TreeView控件下的Data属性!但是我觉得用起来更加的方便!

cNode.Tag = "我可以是任何的对象";


        TreeView控件添加TreeNode就有一些不同了,他的代码是:

pNode = tv.Nodes.Add("我是tv的首结点");
cNode = pNode.Nodes.Add("我是pNode的子结点");

        下面是TreeView的常用代码:

    {1} : 根据数据库中的结构生成树
-------------------------------------------------------------------------------------
  public int GetDataToTree(ref TreeView tv,string CompanyID)
  {
   SqlConnection conn = new SqlConnection(SQLHelper.Conn_1);

   DataSet ds = SQLHelper.ExecustSQL_DataSet(conn,"select CmpNum,CmpName,Left(CmpNum,Len(CmpNum)-2) as PrtID from Company where CmpNum like '"+CompanyID+"%' order by CmpNum");
   dt = ds.Tables["table"];
   dv = dt.DefaultView ;
   dv.Sort = "PrtID";
   DataRowView[] arrDRV = dv.FindRows("00");
   if (arrDRV.Length==0) return 0;

   TreeNode pNode = null;
   foreach(DataRowView drv in arrDRV)
   {
    pNode = tv.Nodes.Add(drv.Row["CmpNum"].ToString()+"/"+drv.Row["CmpName"].ToString());
    pNode.Tag = drv.Row["CmpNum"].ToString();
    CreateTreeNode(ref pNode);
   }
   return 1;
  }

  private void CreateTreeNode(ref TreeNode pNode)
  {
   DataRowView[] arrDRV = dv.FindRows(pNode.Tag);
   if (arrDRV.Length ==0) return;

   TreeNode cNode = null;
   foreach(DataRowView drv in arrDRV)
   {
    cNode = pNode.Nodes.Add(drv.Row["CmpNum"].ToString()+"/"+drv.Row["CmpName"].ToString());
    cNode.Tag = drv.Row["CmpNum"].ToString();
    CreateTreeNode(ref cNode);
   }
  }

原创粉丝点击