C# ListBox实现Item项显示多行

开发 后端
用C# ListBox实现Item多行的方法很少,几乎没有文章给的是直接答案,现在笔者将自己的关于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#内存管理详细分析
责任编辑:阡陌 来源: 网络转载
相关推荐

2009-09-08 16:22:27

c# listBox

2009-09-08 16:34:49

C# Listbox

2009-09-10 12:00:09

C# listbox

2009-08-12 15:50:40

C# ListBox

2009-08-19 11:21:02

C# ListBox控

2009-09-08 14:43:41

C# listbox

2009-08-14 14:19:50

Enhanced LiC#构建

2009-09-08 15:39:00

2009-09-08 16:01:58

C# ListBox

2009-09-08 17:37:54

C# listbox控

2009-09-08 16:10:03

C# ListBox

2009-08-25 11:10:20

C#编程实现显示XML

2009-09-08 14:54:40

C# listBox控

2009-08-25 09:19:01

C#实现窗体显示

2009-07-31 18:28:46

实现C#显示图像

2009-09-11 11:58:00

C# ListBox多

2009-09-03 09:44:02

DropDownLisC#递归

2009-09-08 15:50:44

c# listbox

2009-08-07 12:57:03

C#读取Excel

2009-08-25 10:59:00

C#调用函数显示值
点赞
收藏

51CTO技术栈公众号