public Form1()
{
InitializeComponent();
}
List<Orag> list = new List<Orag>();
private void Form1_Load(object sender, EventArgs e)
{
list = new List<Orag> {
new Orag(1, 0, "上海公司"),
new Orag(2, 0, "北京公司"),
new Orag(3, 1, "上海公司1"),
new Orag(4, 2, "上海公司2"),
new Orag(5, 3, "上海公司2-1"),
new Orag(6, 4, "北京公司0"),
new Orag(7, 5, "北京公司1"),
new Orag(8, 6, "北京公司2"),
new Orag(9, 2, "北京公司3") };
Addnode();
}
public void Addnode()
{
for (int i = 0; i < list.Count; i++)
{
if (list[i].pid == 0)
{
TreeNode pnode = new TreeNode();
pnode.Text = list[i].name;
pnode.Tag = list[i].id;
treeView1.Nodes.Add(pnode);
AddChildnode(list[i].id, pnode);
}
}
}
public void AddChildnode(int pid, TreeNode pnode)
{
for (int i = 0; i < list.Count; i++)
{
if (list[i].pid == pid)
{
TreeNode cnode = new TreeNode();
cnode.Text = list[i].name;
cnode.Tag = list[i].id;
pnode.Nodes.Add(cnode);
AddChildnode(list[i].id, cnode);
}
}
}
public class Orag
{
public int id { get; set; }
public int pid { get; set; }
public string name { get; set; }
public Orag(int id, int pid, string name)
{
this.id = id;
this.pid = pid;
this.name = name;
}
}
private void treeView1_AfterSelect(object sender, TreeViewEventArgs e)
{
MessageBox.Show(treeView1.SelectedNode.Tag.ToString());
}
数据库查询使用
public void GridView()
{
this.treeView1.Nodes.Clear();
DataTable company = db.Queryable<Base_Company>().ToDataTable();
DataTable client = db.Queryable<Base_Client>().ToDataTable();
foreach (DataRow dr in company.Rows)
{
//部门表绑定,作为一级层次
TreeNode tn_origine = new TreeNode();
tn_origine.Text = dr["ClientName"].ToString();
this.treeView1.Nodes.Add(tn_origine);
//用户表绑定
DataRow[] dr_arr = client.Select();
if (dr_arr.Length > 0)
{
foreach (DataRow dr_sub in dr_arr)
{
TreeNode tn_sub = new TreeNode();
tn_sub.Text += dr_sub["ClientId"].ToString();
tn_sub.Text += dr_sub["ClientName"].ToString();
tn_origine.Nodes.Add(tn_sub);
}
}
}
}
递归 数据库查询使用无限级
private void FrmCompany_Load(object sender, EventArgs e)
{
list = db.Queryable<Base_Client>().ToList();
Addnode();
// GridView();
}
List<Base_Client> list = new List<Base_Client>();
public void Addnode()
{
for (int i = 0; i < list.Count; i++)
{
if (list[i].ClientId == "000001")
{
TreeNode pnode = new TreeNode();
pnode.Text = list[i].ClientName;
pnode.Tag = list[i].ClientId;
treeView1.Nodes.Add(pnode);
AddChildnode(list[i].ClientId, pnode);
}
}
}
public void AddChildnode(string pid, TreeNode pnode)
{
for (int i = 0; i < list.Count; i++)
{
if (list[i].ParentID == pid)
{
TreeNode cnode = new TreeNode();
cnode.Text = list[i].ClientName;
cnode.Tag = list[i].ClientId;
pnode.Nodes.Add(cnode);
AddChildnode(list[i].ClientId, cnode);
}
}
}
treeView1点击事件

private void treeView1_NodeMouseClick(object sender, TreeNodeMouseClickEventArgs e)
{
if (Convert.ToInt32(e.Node.Level) > 0)
{
txt_ClientId.Text= e.Node.Tag.ToString();
txt_ClientName.Text = e.Node.Text.ToString();
// MessageBox.Show("您选择的部门是:" + e.Node.Text.ToString(), "信息提示!");
//if (e.Node.Text.Trim() == "销售部门") //如果当前节点的文本为“系统退出”
//{
// MessageBox.Show("部门分类展开所有节点1!", "软件提示");
//}
}
}

703

被折叠的 条评论
为什么被折叠?



