日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

遍历Treeview每个节点并初始化(C#)

發布時間:2023/11/27 生活经验 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 遍历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#)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。