using treeview, click event on treeview nodes

40,297

As long as you have only three nodes in your treeview, this might be efficient. However this would require you to write an extra if statement for each new node you add. If you're trying to differentiate on node depth you are better off using the Level property.

private void treeView1_AfterSelect(object sender, TreeViewEventArgs e)
{
       if (treeView1.SelectedNode.Level == 0)
          {
              HeadForm hf = new HeadForm();
              hf.ShowDialog(); 
          }
       else if (treeView1.SelectedNode.Level == 1)
          {
              MemberForm mf = new MemberForm();
              mf.ShowDialog(); 
          }

       else if (treeView1.SelectedNode.Level == 2)
          {
              SubMemberForm sf = new SubMemberForm();
              sf.ShowDialog(); 
          }
}
Share:
40,297
sqlchild
Author by

sqlchild

Making me.....will appear soon :) Work : PHP and MySQL are in my two hands, shaking my hands together, thus, INNER JOINING the two entities to output some good web applications Need to Say me Hi!....just post a comment on any of my SO post....I will be right there :)

Updated on July 06, 2022

Comments

  • sqlchild
    sqlchild almost 2 years

    I am trying to open a Form when the child node or parent node of a treeview is clicked :

    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
    
        TreeNode head = new TreeNode("HEAD");
    
        TreeNode member = new TreeNode("MEMBER ");
    
        TreeNode submember = new TreeNode("SUB-MEMBER");
    
        private void Form1_Load(object sender, EventArgs e)
        {
            head.Nodes.Add(member);
            member.Nodes.Add(submember);
    
            treeView1.Nodes.Add(head);
            treeView1.AfterSelect += new TreeViewEventHandler(treeView1_AfterSelect);
    
        }
    
        private void treeView1_AfterSelect(object sender, TreeViewEventArgs e)
        {
               if (treeView1.SelectedNode == member)
                  {
                      MemberForm mf = new MemberForm();
                      mf.ShowDialog(); 
                  }
    
               if (treeView1.SelectedNode == head)
                  {
                      HeadForm hf = new HeadForm();
                      hf.ShowDialog(); 
                  }
    
               if (treeView1.SelectedNode == submember)
                  {
                      SubMemberForm sf = new SubMemberForm();  //is this way of checking that which node is clicked efficient???
                      sf.ShowDialog(); 
                  }
        }
    
    }
    
    • Blorgbeard
      Blorgbeard about 13 years
      Yes, that's perfectly efficient. You're just comparing object references.
    • Developer
      Developer about 13 years
      Try by writing this if(Treeview1.selectednode.text=="Your Required Node"")
    • sqlchild
      sqlchild about 13 years
      @Dorababu: this also works , but which one's better? your's or mine
    • Developer
      Developer about 13 years
      @SqlChild : When working what is your doubt
    • sqlchild
      sqlchild about 13 years
      @Dorababu: i mean to say that which one shall i use?
    • Developer
      Developer about 13 years
      What ever you use does not make any changes when you get the required you need