Asp tutorial. net c # Add a node to treeview
Void creat_node (string
Name, microsoft. web. ui. webcontrols. treenode t1, string number)
{
// Define a new node
Microsoft. web. ui. webcontrols. treenode t2 = new
Microsoft. web. ui. webcontrols. treenode ();
T2.id = number;
T2.text = name;
// Determine whether the node is the root node
Treeview1.expandedimageurl = "images/42403.bmp ";
If (t1.id. trim () = "###")
{
Treeview1.nodes. add (t2 );
T2.imageurl = "images/depart01.bmp ";
}
Else
{
T1.nodes. add (t2 );
T2.imageurl = "images/depart01.bmp ";
T1.imageurl = "images/depart02.bmp ";
}
// Obtain all the child nodes of this node and generate them automatically using recursion
String myselectquery = "select parentid, id, name from table1
Where parentid = '"+ number + "'";
String myconnstring = "provider = microsoft. jet. oledb.4.0; data
Source = "+ server. mappath (". ") +"/dt/mydata. mdb ";
Oledbconnection myconnection = new
Oledbconnection (myconnstring );
Oledbcommand mycommand = new
Oledbcommand (myselectquery, myconnection );
Myconnection. open ();
Oledbdatareader myreader;
Myreader = mycommand.exe cutereader ();
While (myreader. read ())
{
Creat_node (myreader. getstring (2), t2, myreader. getstring (1 ));
}
Myreader. close ();
Myconnection. close ();
}
Private void createprovidertreebtn_click (object sender,
System. eventargs e)
{
Microsoft. web. ui. webcontrols. treenode t1 = new
Microsoft. web. ui. webcontrols. treenode ();
Creat_node ("", t1 ,"###");
2. Add a root node
Private void menuitemaddroot_click (object sender, system. eventargs e)
{
Try
{
Treenode = new treenode ("new node ");
Treenode. tag = maxrecordnumber (dataset. tables ["tree"], "nodeid") + 1;
This. treeview. nodes. add (treenode );
Adddeletenode (treenode, rootnodetag, "add ");
Treeview. selectednode = treenode;
Loadtreeview. loadtreenodeimage (treeview. selectednode, this. imagelist1, nodeimagemode );
// Select a node
This. treeviewafterselect (treeview. selectednode );
Menuitemrename_click (new object (), new system. eventargs ());
}
Catch (exception te)
{
Messagebox. show (this, te. message, "errorroot", messageboxbuttons. OK, messageboxicon. warning );
}
}
3. Add sub-nodes
Private void menuitemaddchild_click (object sender, system. eventargs e)
{
Try
{
// 1. When a node has a corresponding link, you cannot add a subnode.
// 2. When a node has a corresponding link, you can add images
If (this. ishavelinedata (dataset. tables ["data"], this. richtextboxid ))
{
Messagebox. show (this, "to add a subnode, you must add it only after this node has no information that can be linked! "," Operation error ", messageboxbuttons. OK, messageboxicon. information );
Return;
}
Treenode = new treenode ("new node ");
Treenode. tag = maxrecordnumber (dataset. tables ["tree"], "nodeid") + 1;
Treeview. selectednode. nodes. add (treenode );
Adddeletenode (treenode, treeview. selectednode. tag. tostring (), "add ");
Treeview. selectednode = treenode;
Loadtreeview. loadtreenodeimage (treeview. selectednode, this. imagelist1, nodeimagemode );
// Select a node
This. treeviewafterselect (treeview. selectednode );
Menuitemrename_click (new object (), new system. eventargs ());
}
Catch (exception te)
{
Messagebox. show (this, te. message, "errorchild", messageboxbuttons. OK, messageboxicon. warning );
}
}
4. Add sibling nodes
Private void menuitemaddborther_click (object sender, system. eventargs e)
{
Try
{
// Determine whether to select the root node in the component
If (treeview. selectednode. parent = null)
{
Messagebox. show ("node <" + treeview. selectednode. text. trim () + "> is the root node. To add a sibling node, use the" add root node "option! "," Information ", messageboxbuttons. OK, messageboxicon. information );
Return;
}
Treenode = new treenode ("new node ");
Treenode. tag = maxrecordnumber (dataset. tables ["tree"], "nodeid") + 1;
Treeview. selectednode. parent. nodes. add (treenode );
Adddeletenode (treenode, treeview. selectednode. parent. tag. tostring (). trim (), "add ");
Treeview. selectednode = treenode;
Loadtreeview. loadtreenodeimage (treeview. selectednode, this. imagelist1, nodeimagemode );
// Select a node
This. treeviewafterselect (treeview. selectednode );
Menuitemrename_click (new object (), new system. eventargs ());
}
Catch (exception te)
{
Messagebox. show (this, te. message, "errorparent", messageboxbuttons. OK, messageboxicon. warning );
}
}
Contextmenustrip1 is associated with treeview1. Right-click a node to add a subnode to the node. Right-click a blank area to add a root node.
Using system;
Using system. collections. generic;
Using system. componentmodel;
Using system. data;
Using system. drawing;
Using system. text;
Using system. windows. forms;
Namespace windowsapplication8
{
Public partial class form1: form
{
Public form1 ()
{
Initializecomponent ();
This. treeview1.labeledit = true;
}
Private void treeview1_nodemouseclick (object sender, treenodemouseclickeventargs e)
{
If (e. button = mousebuttons. right)
{
This. treeview1.selectednode = e. node;
Flag = true;
Contextmenustrip1.show (mouseposition );
}
}
Bool flag = false;
Private void add node toolstripmenuitem_click (object sender, eventargs e)
{
Treenode tn = new treenode ();
If (flag)
{
This. treeview1.selectednode. nodes. add (tn );
This. treeview1.selectednode = tn;
Tn. beginedit ();
Flag = false;
}
Else
{
This. treeview1.nodes. add (tn );
This. treeview1.selectednode = tn;
Tn. beginedit ();
Flag = false;
}
}
Private void treeviewappsafterlabeledit (object sender, nodelabelediteventargs e)
{
E. node. text = e. label;
}
Private void contextmenustripappsopening (object sender, canceleventargs e)
{
If (! Flag)
{
This. treeview1.selectednode = null;
}
}
Bool flag1 = false;
Private void contextmenustripincluitemclicked (object sender, toolstripitemclickedeventargs e)
{
Flag1 = true;
}
Private void contextmenustripincluclosed (object sender, toolstripdropdownclosedeventargs e)
{
If (! Flag1)
{
Flag = false;
}
Else
{
Flag1 = false;
}
}
}
}