16,555
社区成员
发帖
与我相关
我的任务
分享
//VB.Net
Public Class Form1
Public tv As TreeView = New TreeView()
Public dt As Data.DataTable = New DataTable()
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
dt.Columns.Add("id", System.Type.GetType("System.String"))
dt.Columns.Add("name", System.Type.GetType("System.String"))
dt.Columns.Add("pid", System.Type.GetType("System.String"))
dt.Rows.Add("01", "材料类", "null")
dt.Rows.Add("02", "工具类", "null")
dt.Rows.Add("03", "劳保类", "null")
dt.Rows.Add("0101", "阀门", "01")
dt.Rows.Add("0102", "钢材", "01")
dt.Rows.Add("0201", "扳手", "02")
dt.Rows.Add("020101", "梅花扳手", "0201")
dt.Rows.Add("020102", "呆扳手", "0201")
dt.Rows.Add("0301", "手套", "03")
dt.Rows.Add("0302", "帽子", "03")
dt.Rows.Add("030101", "线手套", "0301")
dt.Rows.Add("030201", "安全帽", "0302")
dt.Rows.Add("030202", "防尘帽", "0302")
'调整一下位置
tv.Width = Width / 2 '宽度
tv.Height = Height / 2 '高度
tv.Left = (Width - tv.Width) / 2
'读取root
Dim i = 0
Dim drs = dt.Select("pid='null'")
For i = 0 To drs.Count - 1
tv.Nodes.Add(GetTreeNode(drs(i)))
Next
Controls.Add(tv)
End Sub
Public Function GetTreeNode(dr As Data.DataRow) As TreeNode
Dim node As TreeNode = New TreeNode(dr("name"))
Dim i = 0
Dim drs = dt.Select("pid='" + dr("id") + "'")
For i = 0 To drs.Count - 1
node.Nodes.Add(GetTreeNode(drs(i)))
Next
Return node
End Function
End Class
//数据源datatable
TreeView tv = new TreeView();
DataTable dt = new DataTable();
private void Form1_Load(object sender, EventArgs e)
{
dt.Columns.Add("id",typeof(string));
dt.Columns.Add("name",typeof(string));
dt.Columns.Add("pid", typeof(string));
dt.Rows.Add("01", "材料类", "null");
dt.Rows.Add("02", "工具类", "null");
dt.Rows.Add("03", "劳保类", "null");
dt.Rows.Add("0101", "阀门", "01");
dt.Rows.Add("0102", "钢材", "01");
dt.Rows.Add("0201", "扳手", "02");
dt.Rows.Add("020101", "梅花扳手", "0201");
dt.Rows.Add("020102", "呆扳手", "0201");
dt.Rows.Add("0301", "手套", "03");
dt.Rows.Add("0302", "帽子", "03");
dt.Rows.Add("030101", "线手套", "0301");
dt.Rows.Add("030201", "安全帽", "0302");
dt.Rows.Add("030202", "防尘帽", "0302");
//调整一下位置
tv.Width = Width/2;//宽度
tv.Height = Height/2;//高度
tv.Left = (Width-tv.Width) / 2;
//读取root
foreach (DataRow dr in dt.Select("pid='null'"))
{
tv.Nodes.Add( GetTreeNode(dr));
}
Controls.Add(tv);
}
/// <summary>
/// 读取child
/// </summary>
/// <param name="dr"></param>
/// <returns></returns>
protected TreeNode GetTreeNode(DataRow dr)
{
TreeNode node = new TreeNode(dr["name"].ToString());
foreach(DataRow drchild in dt.Select(string.Format("pid='{0}'",dr["id"])))
{
node.Nodes.Add(GetTreeNode(drchild));
}
return node;
}