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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

另种思路:图片转换 变通模拟实现VS2005下TreeView的ChcekBox点击

發布時間:2025/7/14 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 另种思路:图片转换 变通模拟实现VS2005下TreeView的ChcekBox点击 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

為了實現VS2005下TreeView的ChcekBox 點擊
根據張Sir的指導(感謝他的無私和指導)
提供如下解決思路:
用兩副圖片checkboxUncheck.gif 和 checkboxClicked.gif
輪流作為每個TreeNode的ImageUrl
每次點擊TreeNode時的回發 都切換圖片的顯示樣式
同時將TreeNode的Value值保存到隱藏的文本框
以便可以得到有哪些節點是Checked
------------------
部分示例代碼如下
------------------
+++++++++++++
treeMenu 綁定
+++++++++++++

?1??treeMenu?綁定#region?treeMenu?綁定
?2????private?void?treeMenuBind()
?3????{
?4?????//構建TreeView
?5
?6????????????TreeNode?Node00?=?new?TreeNode("00",?"00");
?7?????Node00..ImageUrl?=?"../Images/checkboxUnClick.gif";
?8
?9????????????TreeNode?Node01?=?new?TreeNode("01",?"01");
10?????Node01.ImageUrl?=?"../Images/checkboxUnClick.gif";
11
12????????????TreeNode?Node0101?=?new?TreeNode("0101",?"0101");
13?????Node0101.ImageUrl?=?"../Images/checkboxUnClick.gif";
14
15????????????TreeNode?Node0102?=?new?TreeNode("0102",?"0102");
16?????Node0102.ImageUrl?=?"../Images/checkboxUnClick.gif";
17
18????????????TreeNode?Node02?=?new?TreeNode("02",?"02");
19?????Node02.ImageUrl?=?"../Images/checkboxUnClick.gif";
20
21????????????Node01.ChildNodes.Add(Node0101);
22????????????Node01.ChildNodes.Add(Node0102);
23
24????????????Node00.ChildNodes.Add(Node01);
25????????????Node00.ChildNodes.Add(Node02);
26
27????????????TreeView1.Nodes.Add(Node00);
28
29????????????//TreeView1.ShowCheckBoxes?=?TreeNodeTypes.All;//顯示CheckBox
30????????????
31????????????TreeView1.ExpandDepth?=?2;
32
33????}

34????#endregion

35
36

+++++++++++++
TreeView 點擊 事件
+++++++++++++++++

?1TreeView?點擊?事件#region?TreeView?點擊?事件
?2????protected?void?treeMenu_SelectedNodeChanged(object?sender,?EventArgs?e)
?3????{
?4????????try
?5????????{
?6????????????//當前圖片路徑及名稱
?7
?8????????????string?imgName?=?this.treeMenu.SelectedNode.ImageUrl.ToString().Trim();
?9
10????????????if?(imgName.Equals("../Images/checkboxUnClick.gif"))//未選中->選中
11????????????{
12????????????????當前節點?及?子節點?和?父節點#region?當前節點?及?子節點?和?父節點
13
14????????????????//當前節點
15????????????????this.treeMenu.SelectedNode.ImageUrl?=?"../Images/checkboxClicked.gif";
16????????????????//判斷當前是否已經存有值?以防重復加入
17????????????????if(!this.hidtxt_LevelID.Text.Trim().Contains(this.treeMenu.SelectedNode.Value.Trim()?+?",?"))
18????????????????????this.hidtxt_LevelID.Text?+=?"?"?+?this.treeMenu.SelectedNode.Value?+?",?";
19????????????????//子節點
20
21????????????????setChildNode(this.treeMenu.SelectedNode,?"1");
22????????????????//父節點
23
24????????????????setParentNode(this.treeMenu.SelectedNode);
25????????????????#endregion

26????????????}

27????????????else//選中->未選中
28????????????{
29????????????????當前節點?及?子節點#region?當前節點?及?子節點
30
31????????????????//當前節點?及?子節點
32
33????????????????this.treeMenu.SelectedNode.ImageUrl?=?"../Images/checkboxUnClick.gif";
34????????????????this.hidtxt_LevelID.Text=this.hidtxt_LevelID.Text.Replace("?"+this.treeMenu.SelectedNode.Value?+?",",?"?");
35
36????????????????//子節點
37
38????????????????setChildNode(this.treeMenu.SelectedNode,"0");
39????????????????#endregion

40????????????}

41
42????????????treeMenu.SelectedNode.Selected?=?false;
43????????}

44????????catch?(Exception?ex)
45????????{
46????????????ex.ToString();
47????????}

48????}

49????#endregion

50
51

++++++++++++
設置子節點的圖片和當前節點一致
++++++++++++++++++++++++++++++

?1??設置子節點的圖片和當前節點一致#region?設置子節點的圖片和當前節點一致
?2
?3????//設置子節點的圖片和當前節點一致
?4
?5????private?void?setChildNode(TreeNode?currNode?,string?imgType)
?6????{
?7????????if?(imgType.Equals("1"))//未選中->選中
?8????????{
?9????????????foreach?(TreeNode?node?in?currNode.ChildNodes)
10????????????{
11????????????????if?(node.ImageUrl.Equals("../Images/checkboxUnClick.gif"))
12????????????????{
13????????????????????node.ImageUrl?=?"../Images/checkboxClicked.gif";
14????????????????????if?(!this.hidtxt_LevelID.Text.Trim().Contains("?"?+?node.Value.Trim()?+?",?"))
15????????????????????????this.hidtxt_LevelID.Text?+=?"?"?+?node.Value?+?",?";
16????????????????}

17????????????????//遞歸
18????????????????if?(node.ChildNodes.Count?>?0)
19????????????????{
20????????????????????setChildNode(node,"1");
21????????????????}

22????????????}

23????????}

24????????else?//選中->未選中
25????????{
26????????????foreach?(TreeNode?node?in?currNode.ChildNodes)
27????????????{
28????????????????if?(node.ImageUrl.Equals("../Images/checkboxClicked.gif"))
29????????????????{
30????????????????????node.ImageUrl?=?"../Images/checkboxUnClick.gif";
31
32????????????????????this.hidtxt_LevelID.Text?=?this.hidtxt_LevelID.Text.Replace("?"?+?node.Value?+?",",?"?");
33????????????????}

34????????????????//遞歸
35????????????????if?(node.ChildNodes.Count?>?0)
36????????????????{
37????????????????????setChildNode(node,"0");
38????????????????}

39????????????}
????????
40????????}

41????}

42????#endregion

43
44

?++++++++++++++
設置父節點為選中
++++++++++++++++++

?1設置父節點為選中#region?設置父節點為選中
?2????//設置父節點為選中
?3????private?void?setParentNode(TreeNode?currNode)
?4????{
?5????????if?(currNode.Parent?!=?null)
?6????????{
?7????????????//只有當前父節點未選中時?才須進行圖片置換?以及?保存LevelID
?8????????????if?(currNode.Parent.ImageUrl.Equals("../Images/checkboxUnClick.gif"))
?9????????????{
10????????????????currNode.Parent.ImageUrl?=?"../Images/checkboxClicked.gif";
11????????????????if?(!this.hidtxt_LevelID.Text.Trim().Contains("?"?+?currNode.Parent.Value.Trim()?+?",?"))
12????????????????????this.hidtxt_LevelID.Text?+=?"?"?+?currNode.Parent.Value?+?",?";
13????????????}

14????????????//遞歸上尋
15????????????if?(currNode.Parent.Parent?!=?null)
16????????????{
17????????????????setParentNode(currNode.Parent);
18????????????}

19????????}

20????}

21????#endregion

22

轉載于:https://www.cnblogs.com/freeliver54/archive/2007/01/08/614668.html

總結

以上是生活随笔為你收集整理的另种思路:图片转换 变通模拟实现VS2005下TreeView的ChcekBox点击的全部內容,希望文章能夠幫你解決所遇到的問題。

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