C# TreeNode案例详解

网友投稿 257 2022-12-17

C# TreeNode案例详解

目录添加节点删除修改方法1:方法二:

添加节点

private void Form1_Load(object sender, EventArgs e)

{

treeView1.LabelEdit = true;//可编辑状态。

//添加一个节点,这个结点是根节点。

TreeNode node = new TreeNode();

node.Text = "hope";

treeView1.Nodes.Add(node);

TreeNode node1 = new TreeNode();

node1.Text = "hopeone";

TreeNode node11 = new TreeNode();

node11.Text = "hopeoneone";

TreeNode node2 = new TreeNode();

node2.Text = "hopetwo";

node1.Nodes.Add(node11);//在node1下面在添加一个结点。

node.Nodes.Add(node1);//node下的两个子节点。

node.Nodes.Add(node2);

TreeNode t = new TreeNode("basil");//作为根节点。

treeView1.Nodes.Add(t);

TreeNode t1 = new TreeNode("basilone");

t.Nodes.Add(t1)eoSrD;

TreeNode t2 = new TreeNode("basiltwo");

t.Nodes.Add(t2);

}

private void Form1_Load(object sender, EventArgs e)

{

treeView1.LabelEdit = true;//可编辑状态。

//添加一个节点,这个结点是根节点。

TreeNode node = new TreeNode();

node.Text = "hope";

treeView1.Nodes.Add(node);

TreeNode node1 = new TreeNode();

node1.Text = "hopeone";

TreeNode node11 = new TreeNode();

node11.Text = "hopeoneone";

TreeNode node2 = new TreeNode();

node2.Text = "hopetwo";

node1.Nodes.Add(node11);//在node1下面在添加一个结点。

node.Nodes.Add(node1);//node下的两个子节点。

node.Nodes.Add(node2);

TreeNode t = new TreeNode("basil");//作为根节点。

treeView1.Nodes.Add(t);

TreeNode t1 = new TreeNode("basilone");

t.Nodes.Add(t1);

TreeNode t2 = new TreeNode("basiltwo");

t.Nodes.Add(t2);

}

删除

private void button1_Click(object sender, EventArgs e)

{

//点击该按钮的时候,会移除选中项

treeView1.Nodes.Remove(treeView1.SelectedNode);

}

private void button1_Click(object sender, EventArgs e)

{

//点击该按钮的时候,会移除选中项

treeView1.Nodes.Remove(treeView1.SelectedNode);

}

修改

private void button2_Click(object sender, EventArgs e)

{

//点击这个按钮的时候,可以修改选中项

//注意:在使用这个属性的时候,必须设置treeView1.LabelEdit =true,否则会提示错误。

treeView1.SelectedNode.BeginEdit();

}

private void button2_Click(object sender, EventArgs e)

{

//点击这个按钮的时候,可以修改选中项

//注意:在使用这个属性的时候,必须设置treeView1.LabelEdit =true,否则会提示错误。

treeView1.SelectedNode.BeginEdit();

}

C#中Treeview判断选择的节点并执行不同的方法

Treeview,点击不同的节点(包括父节点和父节点下的子节点)触发不同的事件,执行相应的方法

方法1:

treeView1_AfterSelect事件就是treeView1中节点被选择触发的事件,e.Node指的是当前选中的节点,e.Node.Nodes指的是当前选中节点的子节点集合。

private void treeView1_AfterSelect(object sender, TreeViewEventArgs e)

{

if (e.Action == TreeViewAction.ByMouse)

{

//当前选中的节点有父节点,并且该父节点在相同级别的父节点中排行第一。

if (e.Node.Parent != null && e.Node.Parent.Index == 0)

{

//当前选中节点在所有的兄弟节点中排第 一

if(e.Node.Index==0)

{

//调用相应的方法();

}

}

//表示当前节点没有父节点,并且在兄弟节点中排行第五(由零开始索引)

if(e.Node.Parent==null&&e.Node.Index==4)

{

//调用相应的方法();

}

}

}

private void treeView1_AfterSelect(object sender, TreeViewEventArgs e)

{

if (e.Action == TreeViewAction.ByMouse)

{

//当前选中的节点有父节点,并且该父节点在相同级别的父节点中排行第一。

if (e.Node.Parent != null && e.Node.Parent.Index == 0)

{

//当前选中节点在所有的兄弟节点中排第 一

if(e.Node.Index==0)

{

//调用相应的方法();

}

}

//表示当前节点没有父节点,并且在兄弟节点中排行第五(由零开始索引)

if(e.Node.Parent==null&&e.Node.Index==4)

{

//调用相应的方法();

}

}

}

方法二:

通过节点的Name属性来判断具体是哪个节点被选择,并执行相应的方法(这种方法效率高一些)

private void treeView1_AfterSelect(object sender, TreeViewEventArgs e)

{

if (e.Action == TreeViewAction.ByMouse)

{

//说明当前选中节点没有子节点

if(e.Node.Nodes.Count==0)

{

if(e.Node.name="aaa")

{

//执行相应的方法();

}

else if(e.Node.Name="bbb")

{

//执行相应的方法();

}

}

}

private void treeView1_AfterSelect(object sender, TreeViewEventArgs e)

{

if (e.Action == TreeViewAction.ByMouse)

{

//说明当前选中节点没有子节点

if(e.Node.Nodes.Count==0)

{

if(e.Node.name="aaa")

{

//执行相应的方法();

}

else if(e.Node.Name="bbb")

{

//执行相应的方法();

}

}

}

C# 怎么判断TreeView选中的是子节点 ?并且是属于哪个父节?

TreeNode selNode = tree.SelectedNode;

if (selNode == null)

{

//防止空引用

return;

}

if (selNode.Parent != null)

{

//为有父亲节点的,

TreeNode parentNode = selNode.Parent;//得到父亲节点

if (selNode.Nodes.Count == 0)

{

//为没有子节点,即选中的节点为叶子节点

}

}

TreeNode selNode = tree.SelectedNode;

if (selNode == null)

{

//防止空引用

return;

}

if (selNode.Parent != null)

{

//为有父亲节点的,

TreeNode parentNode = selNode.Parent;//得到父亲节点

if (selNode.Nodes.Count == 0)

{

//为没有子节点,即选中的节点为叶子节点

}

}

C#.Net中TreeView控件右键选择节点问题处理

private void treeView1_MouseDown(object sender, System.Windows.Forms.MouseEventArgs e)

{

if(e.Button==MouseButtons.Right)

{

TreeNode tn=treeView1.GetNodeAt(e.X,e.Y);

if(tn!=null)treeView1.SelectedNode = tn;

}

}

private void treeView1_MouseDown(object sender, System.Windows.Forms.MouseEventArgs e)

{

if(e.Button==MouseButtons.Right)

{

TreeNode tn=treeView1.GetNodeAt(e.X,e.Y);

if(tn!=null)treeView1.SelectedNode = tn;

}

}

treeView默认 展开

treeView1.ExpandAll();

默认选中TreeVIew中的一个节点

//先找到你要设置选中的节点

TreeNode tn = treeView1.Nodes[3];

//把要设置的节点给SelectedNode

this.treeView1.SelectedNode = tn;

//this.TreeView1.SelectedNodeIndex="";

TreeView,左键单击节点时可修改节点名称

TreeView本身可支持左键修改名称

在初始化时设置:

TreeView.LabelEdit = true;

这样应用程序的treeview生成以后就支持单击节点修改。

如果不想左键修改,可在treeView1_MouseDown中设置treeView1.LabelEdit = false;

右键菜单 重命名

treeView1.LabelEdit = true;

treeView.SelectedNode.BeginEdit();

TreeVIew清空

TreeView.Nodes.Clear()

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:使用Jackson实现Map与Bean互转方式
下一篇:解决使用RestTemplate时报错RestClientException的问题
相关文章

 发表评论

暂时没有评论,来抢沙发吧~