C # implement free movement of the top, bottom, and left of the Treeview Node

Source: Internet
Author: User

The following is the node movement class nodemove. Cs source code:

 

Using system; <br/> using system. collections. generic; <br/> using system. text; <br/> using system. windows. forms; <br/> using system. collections; </P> <p> namespace nodemove <br/> {<br/> class nodemove <br/> {<br/> private void movup (treenode objnode) <br/> {<br/> // ---- move the node up <br/> If (objnode! = NULL) <br/>{< br/> treenode newnode = new treenode (); <br/> // -------- if the selected node is the top node <br/> If (objnode. index = 0) <br/>{< br/> // ------------- <br/>}< br/> else if (objnode. index! = 0) <br/>{< br/> newnode = (treenode) objnode. clone (); <br/> // ------------- if the selected node is the root node <br/> If (objnode. level = 0) <br/>{< br/> treeview1.nodes. insert (objnode. prevnode. index, newnode); <br/>}< br/> // ------------- if the selected node is not the root node <br/> else if (objnode. level! = 0) <br/>{< br/> objnode. parent. nodes. insert (objnode. prevnode. index, newnode); <br/>}< br/> objnode. remove (); <br/> objnode = newnode; <br/>}</P> <p >}< br/>}</P> <p> private void movdown (treenode objnode) <br/> {<br/> // ---- move down the node <br/> If (objnode! = NULL) <br/>{< br/> treenode newnode = new treenode (); <br/> // ------------- if the root node is selected <br/> If (objnode. level = 0) <br/>{< br/> // --------- if the selected node is the bottom node <br/> If (objnode. index = treeview1.nodes. count-1) <br/>{< br/> // --------------- <br/>}< br/> // --------- if the selected node is not the lowest node <br/> else <br/ >{< br/> newnode = (treenode) objnode. clone (); <br/> treeview1.nodes. insert (objnode. nextnode. index + 1, new Node); <br/> objnode. remove (); <br/> objnode = newnode; </P> <p >}< br/> // ----------- if the selected node is not the root node <br/> else if (objnode. level! = 0) <br/>{< br/> // --------- if the bottom node is selected <br/> If (objnode. index = objnode. parent. nodes. count-1) <br/>{< br/> // ----------- <br/>}< br/> // --------- if the selected node is not the lowest <br/> else <br/> {<br/> newnode = (treenode) objnode. clone (); <br/> objnode. parent. nodes. insert (objnode. nextnode. index + 1, newnode); <br/> objnode. remove (); <br/> objnode = newnode; <br/>}</P> <p >}< br/>}</P> <p> private void Movleft (treenode objnode) <br/>{< br/> // ----- move the node to the left (that is, it becomes the same level node of the original parent node) <br/> If (objnode! = NULL) <br/>{< br/> treenode newnode = new treenode (); <br/> // ----- if the contact is a root node <br/> If (objnode. parent = NULL) <br/>{< br/> // --------- <br/>}< br/> // ----- if the selected node is not the root node <br/> else <br/> {<br/> newnode = (treenode) objnode. clone (); <br/> // ----- if the selected node is a level 1 subnode <br/> If (objnode. level = 1) <br/>{< br/> treeview1.nodes. insert (objnode. parent. index + 1, newnode); <br/>}< br/> else <br/>{< br/> OBJ Node. parent. parent. nodes. insert (objnode. parent. index + 1, newnode); <br/>}< br/> objnode. remove (); <br/> objnode = newnode; </P> <p >}< br/>}</P> <p> private void movright (treenode objnode) <br/> {<br/> // ----- move the node to the right (that is, it becomes the last subnode of the previous same level node) <br/> If (objnode! = NULL) <br/>{< br/> treenode newnode = new treenode (); <br/> // ----- if the node is a leaf node <br/> If (objnode. nodes. count = 0 & objnode. prevnode = NULL) <br/>{< br/> // -------- <br/>}< br/> // ----- if the node is the first root node <br/> else if (objnode. parent = NULL & objnode. index = 0) <br/>{< br/> // -------- <br/>}< br/> // ----- <br/> else <br/>{< br/> newnode = (treenode) objnode. clone (); <br/> objnode. prevnode. nodes. insert (objnode. prevnode. nodes. count, newnode); <br/> objnode. remove (); <br/> objnode = newnode; <br/>}< br/>}

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.