调用Combobox的DrawItem和MeasureItem事件设置项字体的颜色和大小以及项的高度和宽度...

 1   // 窗体上添加一个名为comboBox2的combobox
 2 private   void  Form1_Load( object  sender, EventArgs e)
 3 ExpandedBlockStart.gifContractedBlock.gif {
 4            this.comboBox2.DrawMode = DrawMode.OwnerDrawFixed;
 5ExpandedSubBlockStart.gifContractedSubBlock.gif            this.comboBox2.DataSource = new String[] "One""Two""Three" };
 6
 7            this.comboBox2.MeasureItem+=new MeasureItemEventHandler(comboBox2_MeasureItem);
 8            this.comboBox2.DrawItem += new DrawItemEventHandler(comboBox2_DrawItem);
 9}

10
11
12
13 ExpandedBlockStart.gifContractedBlock.gif /**/ /// <summary>
14/// 设置文字底框的高度和宽度
15/// </summary>

16 private   void  comboBox2_MeasureItem( object  sender, MeasureItemEventArgs e)
17 ExpandedBlockStart.gifContractedBlock.gif {
18
19           //根据项的索引设置底框高度
20            switch (e.Index)
21ExpandedSubBlockStart.gifContractedSubBlock.gif            {
22                case 0:
23                    e.ItemHeight = 15;
24                    break;
25                case 1:
26                    e.ItemHeight = 20;
27                    break;
28                case 2:
29                    e.ItemHeight = 25;
30                    break;
31            }

32            e.ItemWidth = 20;//设置项的宽度
33}

34
35 ExpandedBlockStart.gifContractedBlock.gif /**/ /// <summary>
36/// 设置文字的颜色,也可以设置大小
37/// </summary>
38/// <param name="sender"></param>
39/// <param name="e"></param>

40 private   void  comboBox2_DrawItem( object  sender, DrawItemEventArgs e)
41 ExpandedBlockStart.gifContractedBlock.gif  {
42            Brush myBrush = Brushes.Black;
43
44            e.DrawBackground();
45
46
47            //根据项的索引设置字体颜色
48            switch (e.Index)
49ExpandedSubBlockStart.gifContractedSubBlock.gif            {
50                case 0:
51                    myBrush = Brushes.Gray;
52                    break;
53                case 1:
54                    myBrush = Brushes.LawnGreen;
55                    break;
56                case 2:
57                    myBrush = Brushes.Tan;
58                    break;
59            }

60
61            //如果要设置大小则定义一个新的Font,用于替换e.Font
62            e.Graphics.DrawString(this.comboBox2.Items[e.Index].ToString(), e.Font, myBrush, e.Bounds, StringFormat.GenericDefault);
63            e.DrawFocusRectangle();
64}

65

 

该代码从MSDN摘取,但经过简化和测试!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值