看本文前请先看《[树控件的创建和添加节点](http://www.office-cn.net/book/accesstree/10.html)》一文中对创建树控件的Create方法的详细说明,Create的Style参数控制树控件是否显示节点图标,IconSize参数控制图标大小。
  节点的展开、收缩和选择三种状态可以分别显示不同的图标。添加节点时通过Add方法的Image和SelectedImage参数设置节点收缩时的图标和节点选择时的图标。节点还有Image、SelectedImage和ExpandedImage属性,也可通过这些属性设置节点图标,其中ExpandedImage属性用于设置节点展开时的图标。这些参数和属性的值是一个长整型数字,代表一个图标索引,这个图标索引从何而来?图标不是凭空来的,我们要提前把所有要用到的图标加载到一个地方,这些图标加载的先后顺序就是它们的索引。那么如何加载图标,加载到哪里?
  微软树控件的做法,是在窗体上放置一个图像列表控件,设计视图下将图标手动添加保存到图像列表控件,再把树控件和图像列表控件绑定,然后通过图标索引引用图像列表控件中的图标。
  扩展库树控件不需要图像列表控件来保存图标,用代码动态加载图标到树控件本身。有AddImage和AddImageGroup两个方法添加图标。
   AddImage方法一次添加一个图标,多次调用AddImage方法可添加多个图标,图标索引就是添加的先后顺序,第一个添加的图标索引是1,第二个是2,以此类推。
  以下代码从磁盘添加一个图标:
~~~
Treeview0.AddImage “D:\Icon\forward.ico”, 16, 16, 16777215
~~~
  AddImage方法有4个参数,第一个参数指定一个图片文件,支持ico、bmp、gif、jpeg、png等常用格式,这里指定D:\\Icon\\forward.ico这个图标文件;第二和第三个参数用于缩放载入后图标的尺寸,这里把长和宽都缩放为16个像素,注意这个尺寸不一定是节点实际显示图标大小,节点图标大小是创建树控件时通过IconSize参数指定的,比如这两个参数都设为32,会载入一个32\*32像素的图标,但如果创建时IconSize参数设为IconSmall(16\*16),则节点实际显示的图标大小是16\*16,只显示图标的一半,超出部分不显示,所以这两个参数的设置最好和创建时的IconSize参数一致。其实这两个参数和IconSize参数默认值都是16,如果使用16\*16大小的图标,这几个参数可以留空;最后一个参数指定图像的透明色,可以使图像指定颜色部分变透明,默认值是\-1(不指定透明色),对本身有透明效果的图像,如ico图标、gif图片、png图片,可不指定透明色,使用默认值。
  上面的示例代码是添加磁盘上的一个图标文件,程序运行时磁盘上必须存在该文件。能不能不带着图标文件呢?答案是肯定的!AddImage方法的第一个参数,既可以是一个图标文件名,也可以是一个Access图像框,这样就可以先在窗体上添加图像框,把图标保存到图像框中,添加图标时调用图像框,以下代码从窗体上的一个图像框添加图标:
~~~
Treeview0.AddImage Me.Image0, 16, 16, 16777215
~~~
   AddImageGroup 方法可添加一个图片中的多个图标。需要先制作一个包含多个图标的图片,然后AddImageGroup方法调用该图片,示例代码:
~~~
Treeview0.AddImageGroup “D:\Icon\MyIcons.bmp”, 16, 16, 16777215
~~~
  AddImageGroup方法也有4个参数,第一个参数是图片文件(也可以是图像框);第二和第三个参数是图标大小,这里和AddImage方法参数不一样,不是把图标进行缩放,而是根据这两个参数对图片进行分割,得到多个图标;第四个参数指定透明色,和AddImage方法参数一样。
  要制作包含多个图标的图片,可用Access扩展控件库提供的一个公共方法MergeImages(),调用该方法会弹出一个窗口,根据上面的提示步骤做就可以。
如图:
![](http://www.office-cn.net/data/upload/201707/f_77db98f8441528580597658c3bab2619.png)
- Access树控件介绍
- 微软树控件的缺点
- 版本兼容出错
- 不支持64位的Office
- Access树控件的优点
- Access扩展控件库--树控件的创建和添加节点
- Access扩展控件库--树控件节点图标
- Access扩展控件库--树控件常用属性
- Appearance 属性(ActiveX 控件)
- BackColor 属性(ActiveX 控件)
- BackPicture 属性(ActiveX 控件)
- BorderStyle 属性(ActiveX 控件)
- Checkboxes 属性
- Container 属性(ActiveX 控件)
- DropHighlight 属性(ListView 和 TreeView 控件)
- EditBox 属性(ActiveX 控件)
- Enabled 属性(ActiveX 控件)
- Font 属性(ActiveX 控件)
- FullRowSelect 属性(ActiveX 控件)
- Height 属性(ActiveX 控件)
- Access扩展控件库--树控件常用方法
- AboutBox 方法
- AddImage 方法
- AddImageGroup 方法
- CollapseAllNode 方法
- Create 方法
- Echo 方法
- ExpandAllNode 方法
- GetVisibleCount 方法
- HitTest 方法(ListView 和 TreeView 控件)
- Move 方法
- Refresh 方法
- SetFocus 方法
- Access扩展控件库--树控件常用事件
- AfterLabelEdit 事件(ListView 和 TreeView 控件)
- BeforeLabelEdit 事件(ListView 和 TreeView 控件)
- Click 事件
- Collapse 事件(TreeView 控件)
- DblClick 事件
- Expand 事件(TreeView 控件)
- GotFocus 事件
- KeyDown 事件
- KeyPress 事件
- KeyUp 事件
- Access树控件注意问题
- Access树控件(treeview) 64位Office下出现横向滚动条不会自动定位的解决办法
- Access中国树控件 在win10电脑 节点行间距太小的解决办法
- 详细属性和事件