winform中treeview控件实现部分节点显示checkbox
用過asp.net的應該知道,要在treeview中實現上述功能可以使用ShowCheckBox 屬性指定那些節點顯示checkbox哪些不顯示,可是winform中的treeview只提供一個ShowCheckBoxes 屬性,要么全部節點顯示checkbox,要不全部不顯示,而指定節點沒有ShowCheckBox 屬性,下面就在winform的treeview中實現BS對應CheckBox 屬性的功能
?????
a)?????? 將TreeView的CheckBoxs屬性設為false
b)????? 將TreeView的StateImageList屬性關聯一個imagelist組件,里面添加checkbox勾選圖片和未勾選圖片
c)????? 添加TreeView的NodeMouseClick事件,在事件中使用e.Node.StateImageIndex屬性切換顯示的圖片(根據索引切換),可以創建一個泛型集合,比如List<string>,用于存放已打鉤的節點項,從而方便切換打鉤圖片索引和未打鉤圖片索引
d)????? 缺點: 點擊樹節點所在行的任何位置都會觸發NodeMouseClick事件,因為無法觸發treeView1_AfterCheck和treeView1_NodeMouseClick事件,所以只能用NodeMouseClick事件
e)?????? 原理: winform中treeview的checkbox項其實是使用圖片顯示的,選中是打鉤的圖片,未選中是未打鉤的圖片,關聯的是StateImageList屬性(默認為空,使用自帶的圖片)。所以如果要實現指定treenode顯示checkbox,其它treenode不顯示checkbox就需要使用TreeNode的StateImageList屬性
?
需要注意StateImageList的圖標是16*16.不會改變。所以ImageList的圖片需要符合這個規格。
轉載于:https://www.cnblogs.com/colder/archive/2013/02/27/2935545.html
總結
以上是生活随笔為你收集整理的winform中treeview控件实现部分节点显示checkbox的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 如何从JFrog Artifactory
- 下一篇: MapReduce 2 中一些基础数据类