资源描述:
《CommonBox之美化界面》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、VisualC#组件技巧之ComboBox美容2002-07-2909:28作者:张伟出处:yesky责任编辑:方舟 组合框是组成Windows窗口常见的控件之一,Windows程序员在应用软件开发中经常要用到组合框。但随微软开发工具语言(如C/C++/C#/VB/VF)提供的标准组合框都是同一面孔:组合框中每一项都是字符串,看起来有点灰头土脸,不那么赏心悦目(如图1)。图1 今天我们就来给组合框美容一下,使组合框中每一项都带有个性,组合框中每一项即可以让字符串格式变化多样,也可以使每一项都带有各种图形,同样也可以让每一项都带有图像等等。 例1:本例中我们在一个表单上创
2、建三个组合框,从上到下名字分别为comboBox1~comboBox3,通过编程分别让它们的组合框条目字符串格式发生变化、每项前都有图形、每项前都有图像。 第一步:建立项目 建立一名为TestComboBox的Windows应用程序(注:应用程序名可以随意)。 第二步:界面设计 本例界面比较简单,三个label,三个组合框(如图2所示,从上到上组合框名依次为comboBox1、comboBox2、comboBox3),一个imageList控件(当然表单上看不到,在表单设计图的下方)请按照如图2排列。图2 第三步:控件属性设置 (1)把三个label的Text
3、属性按图2设置; (2)三个comboBox的属性进行如下设置: DrawMode:OwnerDrawFixed; DropDownStyle:DropDownList; 注:这两个属性只有如此设置才能保证我们对组合框进行个性化改造,否则的话无论你的程序写得多么好,同样还是"灰头土脸,不是那么赏心悦目。 (3)通过imageList1的Item属性向imageList增添几个图像。 第四步:编程 说明:当我们通过组合框的Add方法向组合框添加item时,都会发生组合框的DrawItem事件处理函数来画组合框item,因此如果我们想创建个性化的组合框只有在Dr
4、awItem事件处理函数中做文章了。在编程之前我们需要了解如下的基础知识。 (1)在组合框条目中显示文本时都是利用grphics类的DrawString函数,此函数有多个变体,现把此函数各种形式简介如下: ①publicvoidDrawString(string,Font,Brush,PointF); 在指定位置并且用指定的Brush和Font对象绘制指定的文本字符串。 ②publicvoidDrawString(string,Font,Brush,RectangleF); 在指定矩形并且用指定的Brush和Font对象绘制指定的文本字符串。 ③publ
5、icvoidDrawString(string,Font,Brush,PointF,StringFormat); 使用指定StringFormat对象的格式化属性,用指定的Brush和Font对象在指定的位置绘制指定的文本字符串。 ④publicvoidDrawString(string,Font,Brush,RectangleF,StringFormat); 使用指定StringFormat对象的格式化属性,用指定的Brush和Font对象在指定的矩形绘制指定的文本字符串。 ⑤publicvoidDrawString(string,Font,Brush,fl
6、oat,float); 在指定位置并且用指定的Brush和Font对象绘制指定的文本字符串。 ⑥publicvoidDrawString(string,Font,Brush,float,float,StringFormat); 使用指定StringFormat对象的格式化属性,用指定的Brush和Font对象在指定的位置绘制指定的文本字符串。 在本例中我们注意使用第④种。 (2)在组合框画矩形时大都使用graphics类的FillRectangle()函数,本例中我们所用的格式如下: FillRectangle(brush_name,rectange);
7、 (3)comboBox1~comboBox3的DrawItem事件处理程序接收一个DrawItemEventArgs类型的参数,它包含与此事件相关的数据。下列DrawItemEventArgs属性提供特定于此事件的信息。 BackColor:获取所绘制的项的背景色。 Bounds:获取表示所绘制项的边界的矩形。 Font:获取分配给所绘制项的字符串格式。 ForeColor:获取所绘制项的前景色。 Graphics:获取要在其上绘制项的图形表面。 Index:获取所绘制项的索引