109,895
社区成员




private void MyTreeView(IList<DeptInfo> depts, string ParentID, TreeNode PNode)
{
depts = GetDeptInfos();
List<DeptInfo> newdepts = new List<DeptInfo>();
IList<EmpInfo> emps = GetEmpInfo();
for (int i = 0; i < depts.Count; i++)
{
if (depts[i].DeptId.ToString().Equals(ParentID))
{
newdepts.Add(depts[i]);
}
}
try
{
if (newdepts.Count > 0)
{
foreach (DeptInfo dept in newdepts)
{
System.Windows.Forms.TreeNode TNode = new System.Windows.Forms.TreeNode(); //创建TNode对像
TNode.Text = dept.Name;
TNode.Name = Convert.ToString(dept.Id);
TNode.Tag = Convert.ToString(dept.DeptId);
TNode.ImageIndex = 1;
TNode.SelectedImageIndex = 1;
TNode.StateImageIndex = 1;
TNode.ContextMenuStrip = cmDept;
TNode.NodeFont = new Font("宋体", 10f);
//显示子点文本
if (PNode == null)
{
this.trvDept.Nodes.Add(TNode);
foreach (EmpInfo emp in emps)
{
if (emp.DeptId == dept.Id)
{
TreeNode empn = new TreeNode();
empn.ForeColor = Color.BlueViolet;
empn.NodeFont = new Font("宋体",9f);
empn.Text = emp.Name;
empn.Name = emp.Id.ToString();
empn.ImageIndex = 0;
empn.ContextMenuStrip = cmUser;
TNode.Nodes.Add(empn);
}
}
}
else
{
PNode.Nodes.Add(TNode);
foreach (EmpInfo emp in emps)
{
if (emp.DeptId == dept.Id)
{
TreeNode empn = new TreeNode();
empn.ForeColor = Color.BlueViolet;
empn.NodeFont = new Font("宋体", 9f);
empn.Text = emp.Name;
empn.Name = emp.Id.ToString();
empn.ImageIndex = 0;
empn.ContextMenuStrip = cmUser;
TNode.Nodes.Add(empn);
}
}
//添加子节点
}
MyTreeView(depts, dept.Id.ToString(), TNode); //调用MyTreeView
}
}
else
{
return;
}
}
catch (Exception exp)
{
MessageBox.Show(exp.Message); //提示错误信息
}
}
private void button2_Click(object sender, EventArgs e)
{
InitTree();
}
public void InitTree()
{
DataView dv = this.GetData();
dv.RowFilter = "ParentID=0";
foreach (DataRowView drv in dv)
{
ToolStripMenuItem node = new ToolStripMenuItem();
node.Text = drv["cname"].ToString();
this.menuStrip1.Items.Add(node);
BuildTree(dv, node,drv["cid"].ToString());
}
}
private void BuildTree(DataView dv, ToolStripMenuItem pnode,string parentID)
{
dv.RowFilter = "[ParentID]=" + parentID;
foreach (DataRowView drv in dv)
{
string name = drv["cname"].ToString();
ToolStripMenuItem cnode = new ToolStripMenuItem(name);
DataView ddvv = dv;
ddvv.RowFilter = "[ParentID]=" + parentID;
if (ddvv.Count>0 )
{
pnode.DropDownItems.Add(cnode);
BuildTree(dv, cnode,drv["cid"].ToString());
}
}
}
private DataView GetData()
{
DataTable table = new DataTable();
table.Columns.Add("CID", typeof(int));
table.Columns.Add("CName", typeof(string));
table.Columns.Add("ParentID", typeof(int));
DataRow row0 = table.NewRow();
DataRow row1 = table.NewRow();
DataRow row2 = table.NewRow();
DataRow row3 = table.NewRow();
DataRow row4 = table.NewRow();
DataRow row5 = table.NewRow();
DataRow row6 = table.NewRow();
DataRow row7 = table.NewRow();
DataRow row8 = table.NewRow();
DataRow row9 = table.NewRow();
row0.ItemArray = new object[] { 1, ".net", 0 };
row1.ItemArray = new object[] { 2, "c#", 1 };
row2.ItemArray = new object[] { 3, "asp.net", 1 };
row3.ItemArray = new object[] { 4, "office", 0 };
row4.ItemArray = new object[] { 5, "word", 4 };
row5.ItemArray = new object[] { 6, "excel", 5 };
row6.ItemArray = new object[] { 7, "os", 0 };
row7.ItemArray = new object[] { 8, "unix", 7 };
row8.ItemArray = new object[] { 9, "linux", 8 };
row9.ItemArray = new object[] { 10, "c#.net", 2 };
table.Rows.Add(row0);
table.Rows.Add(row1);
table.Rows.Add(row2);
table.Rows.Add(row3);
table.Rows.Add(row4);
table.Rows.Add(row5);
table.Rows.Add(row6);
table.Rows.Add(row7);
table.Rows.Add(row8);
table.Rows.Add(row9);
return table.DefaultView;
}
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace WinTest
{
public partial class Form1 : Form
{
DataTable dt;
public Form1()
{
InitializeComponent();
dt = getdata();
}
public DataTable getdata()
{
DataTable dt = new DataTable();
dt.Columns.Add("id");
dt.Columns.Add("parentID");
dt.Columns.Add("title");
Random rand = new Random();
for (int i = 0; i < 15; i++)
{
DataRow dr = dt.NewRow();
dr[0] = i + 1;
dr[1] = (15 % (i + 1) == 0) ? "" : rand.Next(1, 10).ToString();
dr[2] = "name_" + (i + 1).ToString();
dt.Rows.Add(dr);
}
return dt;
}
private void button2_Click(object sender, EventArgs e)
{
DataRow[] drows = dt.Select("parentID=''");
if (drows.Length > 0)
{
foreach (DataRow item in drows)
{
ToolStripMenuItem toolitem = new ToolStripMenuItem(item["title"].ToString());
DataRow[] children = dt.Select(string.Format("parentID='{0}'", item["id"].ToString()));
if (children.Length > 0)
{
bind(toolitem, item);
}
menuStrip2.Items.Add(toolitem);
}
}
}
private void bind(ToolStripMenuItem item,DataRow dr)
{
DataRow[] rows = dt.Select(string.Format("parentID='{0}'",dr["id"].ToString()));
if (rows.Length > 0)
{
foreach (DataRow drv in rows)
{
bind(item,drv);
}
}
else
{
item.DropDownItems.Add(dr["title"].ToString());
}
}
}
}