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/>}