ListBox(列表框)也是日常经常使用和遇到的组件,在Visual Basic .Net中使用的ListBox其实是从.Net FrameWork SDK中的ListBox类经过实例化产生的。.Net FrameWork SDK中的ListBox类所创建的ListBox是最典型的,要想使自己的ListBox与众不同就必须编写相应的代码,好在.Net FrameWork SDK中的ListBox类为实现个性化的ListBox提供丰富的、可操作“工具”,这些“工具”就是绘制ListBox的所需要的事件、相关的属性以及丰富的绘制方法。在本文中将介绍在ListBox中各个元素的绘制方法,其中包括绘制各种字体、颜色以及在各项上加上边框和为各项加入图片等。下面首先来了解一下.Net FrameWork SDK为在VB.Net中实现手工绘制ListBox提供的“工具”。
一..Net Frame Work SDK 为在VB.Net实现个性化ListBox提供的工具:
1. 属性:
在缺省情况下,ListBox是不允许被重绘制的,这是因为ListBox中的“DrawMode”属性值是“Normal”。此属性的作用是设定ListBox的绘制模式,“Normal”是枚举DrawMode中的一个成员。设定为“Normal”意味着ListBox中各个成员都是系统控制,并且各项大小相等。“DrawMode”属性在本文中的作用类似与上一文中的“OwnerDraw”属性。枚举DrawMode中的其他成员请参阅表01所示:
属性
|
说明
|
Normal | 组件的所有元素都由操作系统绘制,并且元素大小都相等。 |
OwnerDrawFixed | 组件的所有元素都是手动绘制的,并且元素大小都相等。 |
OwnerDrawVariable | 组件的所有元素都由手动绘制,元素大小可能不相等。 |
表01:枚举DrawMode中的成员及其说明
本文设定ListBox的“DrawMode”属性值是“OwnerDrawVariable”。因为本文介绍的程序不仅绘制ListBox中的各元素,还将设定ListBox中元素的大小。
2. 事件:
在设定“DrawMode”属性值为“OwnerDrawVariable”后,将会触发一些用以绘制ListBox的事件,如:DrawItem事件和MeasureItem事件。DrawItem事件主要处理绘制ListBox中的各个元素,MeasureItem事件主要是处理设置ListBox各元素的大小。ListBox中的DrawItem事件和MeasureItem事件和上一节中介绍的MenuItem的DrawItem事件和MeasureItem事件是一样的,分别接收DrawItemEventArgs参数和MeasureItemEventArgs参数数据,并以此数据来处理。这二个事件的详细介绍请参阅前一节中内容。
3. 绘制图形的方法:
在绘制ListBox时所采用的方法和上一节中也基本相同,唯一不同的是在本文中增加了图形绘制方法DrawImage,DrawImage方法的作用是在指定的位置,以指定图形的原始大小进行绘制,本文通过DrawImage方法实现在ListBox各项中增加相应的图形。
二.设计、调试和运行环境:
(1).微软公司视窗2000服务器版。
(2).Visual Studio .Net 2003企业构建版,.Net FrameWork SDK 1.1版本号4322。
<