组合框是组成Windows 窗口常见的控件之一,Windows 程序员在应用软件开发中经常要用到组合框。但随微软开发工具语言(如C/C++/C#/VB/VF)提供的标准组合框都是同一面孔:组合框中每一项都是字符串,看起来有点灰头土脸,不那么赏心悦目(如图1)。 图1 今天我们就来给组合框美容一下,使组合框中每一项都带有个性,组合框中每一项即可以让字符串格式变化多样,也可以使每一项都带有各种图形,同样也可以让每一项都带有图像等等。 例1:本例中我们在一个表单上创建三个组合框,从上到下名字分别为comboBox1~comboBox3,通过编程分别让它们的组合框条目字符串格式发生变化、每项前都有图形、每项前都有图像。 第一步:建立项目 建立一名为TestComboBox的Windows 应用程序(注:应用程序名可以随意)。 第二步:界面设计 本例界面比较简单,三个label,三个组合框(如图2 所示,从上到上组合框名依次为comboBox1、comboBox2、comboBox3),一个imageList 控件(当然表单上看不到,在表单设计图的下方)请按照如图2 排列。 图 2 第三步:控件属性设置 (1)把三个 label 的 Text 属性按图 2 设置; (2)三个 comboBox的属性进行如下设置: DrawMode:OwnerDrawFixed; DropDownStyle:DropDownList; 注:这两个属性只有如此设置才能保证我们对组合框进行个性化改造,否则的话无论你的程序写得多么好,同样还是"灰头土脸,不是那么赏心悦目。 (3)通过 imageList1 的 Item 属性向 imageList 增添几个图像。 第四步:编程 说明:当我们通过组合框的 Add 方法向组合框添加 item 时,都会发生组合框的DrawItem 事件处理函数来画组合框 item,因此如果我们想创建个性化的组合框只有在DrawItem 事件处理函数中做文章了。在编程之前我们需要了解如下的基础知识。 (1)在组合框条目中显示文本时都是利用 grphics 类的 DrawString 函数,此函数有多个变体,现把此函数各种形式简介如下: ①public void DrawString(string, Font, Brush, PointF); 在指定位置并且用指定的 Brush 和 Font 对象绘制指定的文本字符串。 ②public void DrawString(string, Font, Brush, RectangleF); 在指定矩形并且用指定的 Brush 和 Font 对象绘制指定的文本字符串。 ③public void DrawString(string, Font, Brush, PointF, StringFormat); 使用指定 StringFormat 对象的格式化属性,用指...