最近在做一个程序,设置了一个ListBox,在里面不断的更新消息,在WinForm的ListBox中默认的颜色只能是单色的,但我需要不同的消息用不同的颜色显示,默认的ListBox就不能胜任了。经过一番研究之后,通过代码成功地实现了。其核心就是不用系统默认的ListBox绘制函数,而是自己重写。
首先在窗体设计器中将ListBox的DrawMode属性改为OwnerDrawFixed,或是直接在代码的合适位置中添加如下代码:

这个属性的作用在MSDN里的解释是“控件中的所有元素都是手动绘制的,并且元素大小都相等”,意思就是允许用编程人员用代码编写控件绘制。
然后就写ListBox的DrawItem事件的处理函数:
