千家信息网

C#中ListBox如何实现Item项显示多行

发表于:2024-11-25 作者:千家信息网编辑
千家信息网最后更新 2024年11月25日,这篇文章给大家分享的是有关C#中ListBox如何实现Item项显示多行的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。1、首先选中拖至面板的ListBox控件,点属性,选中
千家信息网最后更新 2024年11月25日C#中ListBox如何实现Item项显示多行

这篇文章给大家分享的是有关C#中ListBox如何实现Item项显示多行的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。

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

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

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

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

private void listBox1_DrawItem(object sender, System.Windows.Forms.DrawItemEventArgs e)  {         e.DrawBackground();         Brush myBrush = Brushes.Black; //初始化字体颜色=黑色        this.listBox1.ItemHeight=90; //设置项高,根据具体需要设置值        //为每个项设置字体颜色        //如果不需要可以不写此switch         switch (e.Index)         {               case 0:                      myBrush = Brushes.Red;                     break;               case 1:                     myBrush = Brushes.Orange;                       break;               case 2:                      myBrush = Brushes.Purple;                      break;               case 4:                     myBrush = Brushes.White;                      break;          }           e.Graphics.DrawString(listBox1.Items[e.Index].ToString(), e.Font, myBrush,e.Bounds,null);         //这句好象可以不要,自己试下          e.DrawFocusRectangle();    }

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

感谢各位的阅读!关于"C#中ListBox如何实现Item项显示多行"这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!

0