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。
三.循序渐进绘制自己的ListBox: 首先还是按照以下步骤新建一个Visual Basic .Net项目,并在项目窗体上增加一个ListBox组件:
1. 启动Visual Studio .Net。
2. 选择菜单【文件】|【新建】|【项目】后,弹出【新建项目】对话框。
3. 将【项目类型】设置为【Visual Basic项目】。
4. 将【模板】设置为【Windows应用程序】。
5. 在【名称】文本框中输入【打造自己的ListBox】。
在【位置】的文本框中输入【E:\VS.NET项目】,然后单击【确定】按钮,这样在“E:\VS.NET项目”目录中就产生了名称为“打造自己的ListBox”的文件夹,并在里面创建了名称为“打造自己的ListBox”的项目文件。
6. 把Visual Studio .Net的当前窗口切换到【Form1.vb(设计)】窗口,并从【工具箱】中的【Windows窗体组件】选项卡中往Form1窗体中拖入一个ListBox组件到窗体中。并设定此ListBox组件中加入“aaa”、“bbb”和“ccc”三个项。
至此一个最典型的ListBox就完成了。具体如图01所示:
图01:【打造自己的ListBox】项目设计界面之一 |