用C# ListBox实现Item多行的方法很少,几乎没有文章给的是直接答案,现在笔者将自己的关于C# ListBox实现Item多行的方法奉上,希望大家能够从中得到启发。

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

C# ListBox完成Item项显现多行(listbox多行显示)  ListBox 第1张

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

2、仍是在特点东西中,切换到事情(便是那个闪电图标),鼠标双击‘行为’菜单下的DrawItem,增加一个事情。

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

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

  1. privatevoidlistBox1_DrawItem(objectsender,System.Windows.Forms.DrawItemEventArgse)
  2. {
  3. e.DrawBackground();
  4. BrushmyBrush=Brushes.Black;//初始化字体色彩=黑色
  5. this.listBox1.ItemHeight=90;//设置项高,依据详细需求设置值
  6. //为每个项设置字体色彩
  7. //假如不需求能够不写此switch
  8. switch(e.Index)
  9. {
  10. case0:
  11. myBrush=Brushes.Red;
  12. break;
  13. case1:
  14. myBrush=Brushes.Orange;
  15. break;
  16. case2:
  17. myBrush=Brushes.Purple;
  18. break;
  19. case4:
  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();
  26. }

其实,看过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项显现多行(listbox多行显示)

发表评论

您需要后才能发表评论