C# ListBox实现Item项显示多行

“如何让ListBox的Item项显示多行?”,貌似没有人给出直接的答案。现在将一点个人C#  ListBox经验总结如下:

成都创新互联是一家专业从事成都网站设计、网站制作、外贸营销网站建设的网络公司。作为专业网站设计公司,成都创新互联依托的技术实力、以及多年的网站运营经验,为您提供专业的成都网站建设、成都全网营销及网站设计开发服务!

1、首先选中拖至面板的ListBox控件,点属性,选中DrawMode,改成OwnerDrawFixed或OwnerDrawVariable

2、还是在属性工具中,切换到事件(就是那个闪电图标),鼠标双击‘行为’菜单下的DrawItem,添加一个事件。

3、在‘窗体设计器生成的代码’中就添加了一个新的事件
this.listBox1.DrawItem += new System.Windows.Forms.DrawItemEventHandler(this.listBox1_DrawItem);

4、学过的朋友应该知道,这时代码里会有一个 listBox1_DrawItem()的方法,在里面写代码吧。

 
 
 
  1. private void listBox1_DrawItem(object sender, System.Windows.Forms.DrawItemEventArgs e)  
  2. {  
  3.        e.DrawBackground();   
  4.       Brush myBrush = Brushes.Black; //初始化字体颜色=黑色  
  5.       this.listBox1.ItemHeight=90; //设置项高,根据具体需要设置值  
  6.       //为每个项设置字体颜色  
  7.       //如果不需要可以不写此switch  
  8.        switch (e.Index)  
  9.        {  
  10.              case 0:  
  11.                     myBrush = Brushes.Red;  
  12.                    break;  
  13.              case 1:  
  14.                    myBrush = Brushes.Orange;  
  15.                      break;  
  16.              case 2:  
  17.                     myBrush = Brushes.Purple;  
  18.                     break;  
  19.              case 4:  
  20.                    myBrush = Brushes.White;  
  21.                     break;  
  22.         }   
  23.         e.Graphics.DrawString(listBox1.Items[e.Index].ToString(), e.Font, myBrush,e.Bounds,null);  
  24.        //这句好象可以不要,自己试下  
  25.         e.DrawFocusRectangle();    

其实,看过MSDN的朋友应该知道了,MSDN里有类似的代码,我不过修改了几个地方,加入了项高this.listBox1.ItemHeight=90,可以输入多行字符,这里要注意的是,整个ListBox的高应该是你设置的Item项高的倍数大一点点,不然ListBox在显示时会有所变形!(例如:我的Item项高是60,而ListBox要一次显示三项,所以设置为184)

以上就是关于C#  ListBox控件重绘Item项的方法。

【编辑推荐】

  1. 解析C# Socket编程实现访问网络的原理
  2. C# switch语句简单描述
  3. C# ServiceController类剖析
  4. C#抓取网页程序的实现浅析
  5. C#内存管理详细分析

网站题目:C# ListBox实现Item项显示多行
分享URL:http://www.csdahua.cn/qtweb/news33/401233.html

网站建设、网络推广公司-快上网,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 快上网