遍历Treeview每个节点并初始化(C#)
生活随笔
收集整理的這篇文章主要介紹了
遍历Treeview每个节点并初始化(C#)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
搞了好久,哎,C#的一些控件用起來還沒習慣,所以折騰啊。
TreeView的形成,必然要初始化,數據記錄是從數據庫中取得的,那么要先取再遍歷。介紹下心得吧。
首先,數據預期顯示結果如下
?
其次,數據庫結構如下
?
需要解釋的是,c_id為自增長的主鍵,也就是即將要用到的TV節點的TAG,c_pid是父節點的TAG
數據庫內容如下
初始化顯示的代碼如下,用了遞歸思想
?
1??MySqlConnection?mysqlconn?=?null;?2?????????MySqlCommand?myCmd?=?new?MySqlCommand();
?3?????????MySqlDataReader?myDr?=?null;//數據庫連接
?4?????????public?usInstallAdd(MDIParent?m,?GlobalClass?g)
?5?????????{//構造函數
?6?????????????mdi?=?m;
?7?????????????globalvar?=?g;
?8?????????????InitializeComponent();
?9?????????????tv_Pro.Dock?=?DockStyle.Left;
10?????????????
11?????????????//load?data
12?????????????mysqlconn?=?new?MySqlConnection(globalvar.strmysqlconnstr);
13?????????????mysqlconn.Open();
14?????????????myCmd.Connection?=?mysqlconn;
15?????????????string?strSQl?=?@"select?*from?t_pro";
16?????????????myCmd.CommandText?=?strSQl;
17?????????????myCmd.CommandType?=?CommandType.Text;
18?????????????myDr?=?myCmd.ExecuteReader();
19?
20?????????????TreeNode?pnode?=?new?TreeNode();
21?????????????pnode.Text?=?"項目管理";
22?????????????pnode.Tag?=?0;
23?????????????tv_Pro.Nodes.Add(pnode);//先初始化一個節點
24?????????????
25?????????????while?(myDr.Read())
26?????????????{
27?????????????????TreeNode?node?=?new?TreeNode();
28?????????????????node.Text?=?myDr["c_name"].ToString();
29?????????????????node.Tag?=?myDr.GetInt32(0);
30?????????????????string?strValue?=?myDr["c_pid"].ToString();
31?????????????????if?(pnode?!=?null)
32?????????????????{//遍歷查詢并添加
33?????????????????????fun_FindNode(pnode,?strValue,?node);
34?????????????????}
35?????????????}
36?????????????tv_Pro.ExpandAll();
37?????????????myDr.Close();
38?????????????myCmd.Dispose();
39?????????????mysqlconn.Close();
40??????????}
41?//遍歷函數如下
42?private?TreeNode?fun_FindNode(TreeNode?tnParent,?string?strValue,?TreeNode?tnc)
43?????????{
44?????????????//遍歷TV
45?????????????if?(tnParent?==?null)?
46?????????????????return?null;
47?????????????if?(tnParent.Tag.ToString()?==?strValue)
48?????????????{
49?????????????????tnParent.Nodes.Add(tnc);
50?????????????????return?tnParent;
51?????????????}
52?????????????TreeNode?tnRet?=?null;
53?????????????foreach?(TreeNode?tn?in?tnParent.Nodes)
54?????????????{
55?????????????????tnRet?=?fun_FindNode(tn,?strValue,?tnc);
56?????????????????if?(tnRet?!=?null)
57?????????????????{
58?????????????????????//tnRet.Nodes.Add(tnc);
59?????????????????????break;
60?????????????????????//continue;
61?????????????????}
62?????????????}
63?????????????return?tnRet;
64?????????}
?
轉載于:https://www.cnblogs.com/lifw/articles/1609783.html
總結
以上是生活随笔為你收集整理的遍历Treeview每个节点并初始化(C#)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 各位mm有在20几岁的时候很想看护小萝莉
- 下一篇: 植物好听的名字