⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 tree.cs

📁 一个好的系统 对初学者很有用啊 来看看啊
💻 CS
字号:
using System;
using System.Drawing;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Data.SqlClient;  
using System.Windows.Forms ;

namespace   ExamCenter.BLCTier
{
	public class NodeInfo
	{
		public string NodeID;
		public NodeInfo()
		{
		}
	}

	public class Tree
	{
	
		public static void GenerateTree(DataTable dt,string id,string parentid,string name,ref TreeView tv)
		{
			Hashtable ht = new Hashtable();
			Hashtable htParent = new Hashtable();
			int iCount = dt.Rows.Count;
			DataRow dr;
			NodeInfo nodeInfo;
			string [] keyArray = new string[iCount];//保存哈西表中的键值
			//创建所有树节点,保存在哈西表中
			for(int i=0;i<iCount;i++)
			{		//-----------------处理记录编号域------------------------	
				nodeInfo = new NodeInfo();
				dr = dt.Rows[i];
				nodeInfo.NodeID = dr[id].ToString();
				keyArray[i] = nodeInfo.NodeID;
				TreeNode tn = new TreeNode (); //创建节点
				tn.Tag=  dr[id].ToString();
				tn.Text= dr[name].ToString();			
				ht.Add(nodeInfo.NodeID,tn);			
				//----------处理记录父编号域-----------------------
				TreeNode tnParent=new TreeNode ();
				tnParent.Tag = dr[parentid].ToString();
				htParent.Add (nodeInfo.NodeID,tnParent);
				//-----------------------------------------------
			}
			//建立节点关系,并将根节点加入到TreeView中
			for(int i=0;i<iCount;i++)
			{
				TreeNode tn = (TreeNode)ht[keyArray[i]];
				TreeNode tnParent=(TreeNode)htParent[keyArray[i]];
				if(tnParent.Tag   == null || (string)tnParent.Tag == "0") 

					tv.Nodes.Add(tn);
					//这是根节点
					
				else //这是子节点
				{
					TreeNode tnCurrentParent = (TreeNode)ht[tnParent.Tag];
					//找父节点对象,注意:可能找不到父节点对象
					if(tnCurrentParent!=null)
						tnCurrentParent.Nodes.Add(tn);
						//找到父节点:把该节点加到父节点的子节点列表中
					else
					{
						//未找到父节点:或把它设为根节点,或抛弃
						//设为根节点
						tv.Nodes.Add(tn);
						
					}
				}
			}
		}
		//-------------------------------------
		
			public static void GenerateTypeTree(DataTable dt,string id,string parentid,string name,ref TreeView tv,string strTypeName)
			{
				Hashtable ht = new Hashtable();
				Hashtable htParent = new Hashtable();
				int iCount = dt.Rows.Count;
				DataRow dr;
				NodeInfo nodeInfo;
				string [] keyArray = new string[iCount];//保存哈西表中的键值
				//创建所有树节点,保存在哈西表中
				for(int i=0;i<iCount;i++)
				{		//-----------------处理记录编号域------------------------	
					nodeInfo = new NodeInfo();
					dr = dt.Rows[i];
					nodeInfo.NodeID = dr[id].ToString();
					keyArray[i] = nodeInfo.NodeID;
					TreeNode tn = new TreeNode (); //创建节点
					tn.Tag=  dr[id].ToString();
					tn.Text= dr[name].ToString();			
					ht.Add(nodeInfo.NodeID,tn);			
					//----------处理记录父编号域-----------------------
					TreeNode tnParent=new TreeNode ();
					tnParent.Tag = dr[parentid].ToString();
					htParent.Add (nodeInfo.NodeID,tnParent);
					//-----------------------------------------------
				}
				//建立节点关系,并将根节点加入到TreeView中
				for(int i=0;i<iCount;i++)
				{
					TreeNode tn = (TreeNode)ht[keyArray[i]];
					TreeNode tnParent=(TreeNode)htParent[keyArray[i]];
					if(tnParent.Tag   == null || (string)tnParent.Tag == "0" && tn.Text .Trim ()==strTypeName.Trim ()) 

						tv.Nodes.Add(tn);
						//这是根节点
					
					else //这是子节点
					{
						TreeNode tnCurrentParent = (TreeNode)ht[tnParent.Tag];
						//找父节点对象,注意:可能找不到父节点对象
						if(tnCurrentParent!=null)
							tnCurrentParent.Nodes.Add(tn);
							//找到父节点:把该节点加到父节点的子节点列表中
						else
						{
							//未找到父节点:或把它设为根节点,或抛弃
							//设为根节点
						//	tv.Nodes.Add(tn);
						}
					}
				}
			}


	}	
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -