博客源自:http://blog.sina.com.cn/s/blog_49695095010009yz.html
1.将ComboBox的
DrawMode=OwnerDrawFixed;
DropDownStyle=DropDownList;
2.使用ImageList控件加入一些图片
3.DrawItem事件
private void comboBox1_DrawItem(object sender, DrawItemEventArgs e)
{
Rectangle r = e.Bounds;
Size imageSize = imageList1.ImageSize;
Font fn = null;
if (e.Index >= 0)
{
fn = (Font)this.comboBox1.Font;
string s = (string)comboBox1.Items[e.Index];
StringFormat sf = new StringFormat();
sf.Alignment = StringAlignment.Near;
if (e.State == (DrawItemState.NoAccelerator | DrawItemState.NoFocusRect))
{
//画条目背景
e.Graphics.FillRectangle(new SolidBrush(Color.Red), r);
//绘制图像
imageList1.Draw(e.Graphics, r.Left, r.Top, e.Index);
//显示字符串
e.Graphics.DrawString(s, fn, new SolidBrush(Color.Black), r.Left + imageSize.Width, r.Top+1);
//显示取得焦点时的虚线框
e.DrawFocusRectangle();
}
else
{
e.Graphics.FillRectangle(new SolidBrush(Color.LightBlue), r);
//e.Graphics.DrawImage(imageList1.Images[e.Index], r);//背景
imageList1.Draw(e.Graphics, r.Left, r.Top, e.Index);
e.Graphics.DrawString(s, fn, new SolidBrush(Color.Black), r.Left + imageSize.Width, r.Top);
//e.Graphics.DrawString("["+s+"]", fn, new SolidBrush(Color.Red), r.Left + imageSize.Width, r.Top+fn.GetHeight());
e.DrawFocusRectangle();
}
}
}