ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
  看本文前请先看《[树控件的创建和添加节点](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)