C#中按钮点击后,treeview控件怎么选中指定节点?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C#中按钮点击后,treeview控件怎么选中指定节点?相关的知识,希望对你有一定的参考价值。

做了一个窗体,有一个treeview控件,两个textbox控件(名称,备注),一个按钮(保存)! treeview中的节点是根据sql数据动态加载的: 项目部 --研发部 --设计部 业务部 --销售部 --渠道部 办公室 财务部 我点击其中一个节点(销售部)时,名称和备注的textbox中显示这个节点的信息,修改完,点击保存按钮后,treeview里面的数据怎么刷新过来?而且又要能继续选中刚才点击的那个节点(即销售部继续选中)?

参考技术A 1
你点击某节点的时候就要记下当前点选节点的标示
比如节点ID
节点名称等
这些在你初始化节点的时候就要赋值上去了
2
点按钮保存的时候
修改后的信息要更新进数据库
3
页面重新load的时候
根据你第一步保存的节点标示(ID等)进行遍历比较
将节点标示相符的节点selected置为true
一样的
你查一下selectNode属性使用的方法
很久没用忘了
记得winform比web更容易实现
我记得好像cs模式是自动生成checkbox
你看看有没有关于当前节点checkbox的属性
设置为checked就行了

c#中treeview的使用方法(转 )

本文主要介绍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();
       }

 

 

 

 

 

 

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)//表示当前节点没有父节点,并且在兄弟节点中排行第五(由零开始索引)

{

               调用相应的方法();
                 }
            }
        }
方法二:通过节点的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")
                  {
                      执行相应的方法();
                  }
             }
         }


 

 

 

 

 

 

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

 

 

TreeNode selNode = tree.SelectedNode;
            if (selNode == null)
            {
                //防止空引用
                return;
            }
            if (selNode.Parent != null)
            {
                //为有父亲节点的,
                TreeNode parentNode = selNode.Parent;//得到父亲节点
                
                if (selNode.Nodes.Count == 0)
                {
                    //为没有子节点,即选中的节点为叶子节点
                }
            }

 

 
 
 
C#.Net中TreeView控件右键选择节点问题处理
 
  1. private void treeView1_MouseDown(object sender, System.Windows.Forms.MouseEventArgs e)  
  2. {  
  3. if(e.Button==MouseButtons.Right)  
  4. {  
  5. TreeNode tn=treeView1.GetNodeAt(e.X,e.Y);  
  6. if(tn!=null)treeView1.SelectedNode = tn;  
  7. }  
 
 
 
 
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()

以上是关于C#中按钮点击后,treeview控件怎么选中指定节点?的主要内容,如果未能解决你的问题,请参考以下文章

C#动态给treeview控件添加节点和子节点

Winform 中使用treeview控件,treeview控件会默认选择最后一个有子节点的节点,怎么解决

c#中treeview的使用方法(转 )

c#(windows程序)treeview 获得焦点选中

C#里treeview如何向指定NAME节点添加子节点?

C#怎么获取当前单击的控件名称,比如有100个Button 一个button_Click() ,点击按钮后显示所点击的按钮名称