如何从treeview中查找根名称的根名称和根目录 [英] how to find rootname and root of root name from treeview

查看:109
本文介绍了如何从treeview中查找根名称的根名称和根目录的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

实际上我有一个treeview.which有3级node.as像follewing树结构



Dept

|

--- SubDept

|

------ KPI







有3个文本框

1.txtDept

2.txtsubdept

3 .txtkpi



有3个条件:

1.如果用户点击主节点(部门)

当用户点击第一个节点即dept(根节点),dept名称显示为txtdept,第一个对应的subdeptname显示为txtsubdept,相应的第一个KPI显示为txtkpi



2 .if用户点击根节点(SubDept)

当用户点击下一个根节点即subdept,subdept名称显示到txtsubdept并且相应的第一个KPI显示到txtkpi和父节点(Dept name)显示到txtdept 。





3.如果用户点击subdept(KPI)的子节点

用户点击子节点的子节点(KPI),即kpinode名称显示为txtkpi,其对应的父节点即(SubDept)显示为txtsubdept,父节点名称(Dept)的父节点显示为txtdept





如何处理这三个条件?以及哪个事件发生火灾?



mycode:



private void treeViewKPI_AfterSelect(对象发送者,TreeViewEventArgs e)

{

TreeNode节点;

节点= treeViewKPI.SelectedNode;

if(node.TreeView.Nodes.Contains(node))

{

string nodeName;

panelDisplayKPI.Visible = true;

txtDept.Text = node.Text.ToString();

nodeName = node.FirstNode.Text.ToString();

textSubDept.Text = node.FirstNode.Text.ToString();

if(node.FirstNode.Nodes.Count> 0)

{

txtDisplayKPI.Text = node.FirstNode.Nodes [0] .Text;

}

else

{

txtDisplayKPI.Text ="" ;;

}

}

else

{



txtDept.Text = node.Parent.Text.ToString();

textSubDept.Text = node.Text.ToString();

if(node.FirstNode.Nodes.Count> 0 || node.FirstNode!= null)

{

txtDisplayKPI.Text = node.FirstNode.Nodes [0] .Text;

}

else

{

}

}

btnSave.Enabled = true;

btnDelete.Enabled = true;

}

actually i have one treeview.which have 3 levels of node.as like follwing tree structure

Dept
|
--- SubDept
|
------KPI



there are 3 textbox
1.txtDept
2.txtsubdept
3.txtkpi

there are 3 condition:
1.if user click on mainroot node(Dept)
when user click on 1st node i.e dept(Root node),dept name shown into txtdept,and 1st corresponding subdeptname display into txtsubdept and corresponding 1st KPI display into txtkpi

2.if user click on root node(SubDept)
when user click on next Root node i.e subdept,subdept name display into txtsubdept and corresponding 1st KPI display into txtkpi and parent node(Dept name) shown into txtdept.


3.if user click on child node of subdept(KPI)
when user click child node of subdept(KPI),that kpinode name display into txtkpi,and its corresponding parent i.e(SubDept)display into txtsubdept,and parent of parent node name (Dept) display into txtdept


how to handled this three condition?and which event fire for this?

mycode:

private void treeViewKPI_AfterSelect(object sender, TreeViewEventArgs e)
{
TreeNode node;
node = treeViewKPI.SelectedNode;
if (node.TreeView.Nodes.Contains(node))
{
string nodeName;
panelDisplayKPI.Visible = true;
txtDept.Text = node.Text.ToString();
nodeName = node.FirstNode.Text.ToString();
textSubDept.Text = node.FirstNode.Text.ToString();
if (node.FirstNode.Nodes.Count > 0)
{
txtDisplayKPI.Text = node.FirstNode.Nodes[0].Text;
}
else
{
txtDisplayKPI.Text = "";
}
}
else
{

txtDept.Text = node.Parent.Text.ToString();
textSubDept.Text = node.Text.ToString();
if (node.FirstNode.Nodes.Count > 0 || node.FirstNode!=null)
{
txtDisplayKPI.Text = node.FirstNode.Nodes[0].Text;
}
else
{
}
}
btnSave.Enabled = true;
btnDelete.Enabled = true;
}

推荐答案

你可以使用'L evel Microsoft TreeView控件中TreeNode对象的属性,以简化此操作:
You can use the 'Level Property of the TreeNode object in the Microsoft TreeView Control to simplify this:
private void treeView1_AfterSelect(object sender, TreeViewEventArgs e)
{
    TreeNode currentNode = e.Node;

    switch (currentNode.Level)
    {
        case 0:
            textBox1.Text = currentNode.Text; // dept
            textBox2.Text = currentNode.Nodes[0].Text; // sub dept
            textBox3.Text = currentNode.Nodes[0].Nodes[0].Text;  // KPI
            break;
        case 1:
            textBox1.Text = currentNode.Parent.Text;
            textBox2.Text = currentNode.Text;
            textBox3.Text = currentNode.Nodes[0].Text;
            break;
        case 2:
            textBox1.Text = currentNode.Parent.Parent.Text;
            textBox2.Text = currentNode.Parent.Text;
            textBox3.Text = currentNode.Text;
            break;
    }
}


这篇关于如何从treeview中查找根名称的根名称和根目录的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆