treeview 节点前加图片 StateImageList和ImageList的区别

先看效果

先新建窗口,添加一个treeview控件和一个imagelist控件,imagelist控件中添加四个图片

treeview 节点前加图片 StateImageList和ImageList的区别_第1张图片

StateImageList

treeviewStateimagelist属性设置为创建的 imagelist1, 发现设计界面树节点前出现了索引为0的图片,但是按F5运行,节点前的图片却不显示

treeview 节点前加图片 StateImageList和ImageList的区别_第2张图片

treeview 节点前加图片 StateImageList和ImageList的区别_第3张图片

只有同时将checkbox属性改为true,运行时图片才会出来,而且鼠标点击节点前的图片时,图片会在索引0,1之间切换,双击时切到索引为2的图片

treeview 节点前加图片 StateImageList和ImageList的区别_第4张图片

ImageList:将treeviewImagelist属性设置为imagelist1

treeview 节点前加图片 StateImageList和ImageList的区别_第5张图片

treeview 节点前加图片 StateImageList和ImageList的区别_第6张图片

 

设置单个节点的
imageindex
(未选中时的图片索引)和selectimageindex(节点选中时的图片索引)

表现正常

分析

对于StateImageList属性MSDN里面解释为“ TreeView CheckBoxes 属性设置为 true而且设置了 StateImageList 属性时TreeView
中包含的每个 TreeNode 显示来自 StateImageList 的第一和第二幅图像以分别指示未选中或选中状态。 对于没有设置状态图像的节点,应该在将节点添加到 TreeView 之前设置 StateImageList 属性,以防止在设计时显示状态图像。

StateImageList 是表示节点状态的imagelistcheckbox状态变化可以理解为是两张图片 ,当然也可以用别的图片来替换。

         Imagelist属性MSDN里面解释为“如果 ImageList 属性值不是 null所有树节点都将显示存储在 ImageList 中的第一个 Image 通过设置 ImageIndex SelectedImageIndex 属性可以指定为选定和未选定的节点显示列表中的哪个图像。 单个 TreeNode 对象可以通过设置其 ImageIndex SelectedImageIndex 属性来指定显示哪个图像。 这些个别设置将重写相应 TreeView 属性中的设置。

         大多数情况下,这个属性才时我们需要的。

扩展 

于是,我们能做成这样的效果

treeview 节点前加图片 StateImageList和ImageList的区别_第7张图片treeview 节点前加图片 StateImageList和ImageList的区别_第8张图片













你可能感兴趣的:(treeview 节点前加图片 StateImageList和ImageList的区别)