本文主要介绍treeView控件中,添加,修改、删除节点的操作,
首先当窗体加载的时候,我们添加上图中所示的节点。
当点击“Delete the Selected”按钮时,被选中的节点将被删除。
当点击“Edit the Selected”按钮式,被选中的节点变成修改状态,此时我们可以对其修改。
其代码如下:
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 = newTreeNode("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 button2_Click(object sender, EventArgs e)
{//点击这个按钮的时候,可以修改选中项
注意:在使用这个属性的时候,必须设置treeView1.LabelEdit =true,否则会提示错误。
treeView1.SelectedNode.BeginEdit();
}
关于控件Treeview,如何在点击不同的节点(包括父节点和父节点下的子节点)触发不同的事件,执行相应的方法?
方法1:
treeView1_AfterSelect事件就是treeView1中节点被选择触发的事件,e.Node指的是当前选中的节点,e.Node.Nodes指的是当前选中节点的子节点集合。
例如:
{
方法二:通过节点的Name属性来判断具体是哪个节点被选择,并执行相应的方法(这种方法效率高一些)
TreeNode selNode = tree.SelectedNode; if (selNode == null) { //防止空引用 return; } if (selNode.Parent != null) { //为有父亲节点的, TreeNode parentNode = selNode.Parent;//得到父亲节点 if (selNode.Nodes.Count == 0) { //为没有子节点,即选中的节点为叶子节点 } }
- 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;
- }
- }
treeView1.ExpandAll();
//先找到你要设置选中的节点
TreeNode tn = treeView1.Nodes[3];
//把要设置的节点给SelectedNode
this.treeView1.SelectedNode = tn;
// this.TreeView1.SelectedNodeIndex="";TreeView本身可支持左键修改名称 在初始化时设置: TreeView.LabelEdit = true; 这样应用程序的treeview生成以后就支持单击节点修改。
</pre><pre id="best-content-1118048972" class="best-text mb-10" name="code" style="white-space: pre-wrap; word-wrap: break-word;">如果不想左键修改,可在treeView1_MouseDown中设置treeView1.LabelEdit = false;
</pre><pre id="best-content-1118048972" class="best-text mb-10" name="code" style="white-space: pre-wrap; word-wrap: break-word;"><strong>右键菜单 重命名</strong>
treeView1.LabelEdit = true;
treeView.SelectedNode.BeginEdit();
</pre><pre id="best-content-1118048972" class="best-text mb-10" name="code" style="white-space: pre-wrap; word-wrap: break-word;">
</pre><pre id="best-content-1118048972" class="best-text mb-10" name="code" style="white-space: pre-wrap; word-wrap: break-word;"><strong>TreeVIew清空</strong>
<span style="color: rgb(51, 51, 51); line-height: 24px;">TreeView</span><span style="font-family: Helvetica, Tahoma, Arial, sans-serif; color: rgb(51, 51, 51); line-height: 24px; background-color: rgb(245, 245, 245);">.Nodes.Clear()</span><span style="font-family: Helvetica, Tahoma, Arial, sans-serif; color: rgb(51, 51, 51); line-height: 24px; background-color: rgb(245, 245, 245);"></span><pre id="best-content-1118048972" class="best-text mb-10" name="code" style="white-space: pre-wrap; word-wrap: break-word;">