ListBox 在C# winform编程中,使用的比较多,用途也很广,今天带大家一步步的美化ListBox控件。
本文主要实现。
1.奇数行与偶数行颜色交替。
2.选中行颜色。
3.鼠标移动停留行颜色。
4.增加序号
5.增加单选框显示。
前面的若干文章,已经讲解了重绘等一些技巧,这篇文章,理解内容相对比较多,看的小伙伴可以收藏,若碰到问题,欢迎在下方留言。
重绘第一步依然
新建一个类 ,继承ListBox
文中写的部分在之前文章提到过,本文不做详细描述,主要就是减少闪烁,双缓存等。
构造函数中内容
public WenListBox() { base.SetStyle( //ControlStyles.UserPaint | ControlStyles.DoubleBuffer | ControlStyles.OptimizedDoubleBuffer | ControlStyles.AllPaintingInWmPaint | ControlStyles.ResizeRedraw | ControlStyles.SupportsTransparentBackColor, true); base.UpdateStyles(); this.DrawMode = DrawMode.OwnerDrawFixed; this.IntegralHeight = false; }
ControlStyles.UserPaint 此项是所有内容都由用户绘制,一般不用为true。若是需要全部用户自定义绘制。高级重绘,应当此项勾选,本文主要是绘制项,就不把此项设置为true。
私有属性
#region 私有属性 //选中项改变之前的选中项索引 private int selectBefore = -1; private int MouseItemIndex; private bool line = true; private bool radioBox =