先上图:
这里添加固定的图片的。
代码:
private Color RowBackColorAlt = Color.FromArgb(200, 200, 200);//交替色
private Color RowBackColorSel = Color.FromArgb(150, 200, 250);//选择项目颜色
public Form1()
{
InitializeComponent();
listBox1.DrawMode = DrawMode.OwnerDrawFixed;
listBox1.ItemHeight = 24;
}
private void listBox1_DrawItem(object sender, DrawItemEventArgs e)
{
Brush myBrush = Brushes.Black;
if ((e.State & DrawItemState.Selected) == DrawItemState.Selected)
{
myBrush = new SolidBrush(RowBackColorSel);
}
else if (e.Index % 2 == 0)
{
myBrush = new SolidBrush(RowBackColorAlt);
}
else
{
myBrush = new SolidBrush(Color.White);
}
e.Graphics.FillRectangle(myBrush, e.Bounds);
e.DrawFocusRectangle();//焦点框
//绘制图标
Image image = Image.FromFile("images/item.png");
Graphics g = e.Graphics;
Rectangle bounds = e.Bounds;
Rectangle imageRect = new Rectangle(
bounds.X,
bounds.Y,
bounds.Height,
bounds.Height);
Rectangle textRect = new Rectangle(
imageRect.Right,
bounds.Y,
bounds.Width - imageRect.Right,
bounds.Height);
if (image != null)
{
g.DrawImage(
image,
imageRect,
0,
0,
image.Width,
image.Height,
GraphicsUnit.Pixel);
}
//文本
StringFormat strFormat = new StringFormat();
//strFormat.Alignment = StringAlignment.Center;
strFormat.LineAlignment = StringAlignment.Center;
e.Graphics.DrawString(listBox1.Items[e.Index].ToString(), e.Font, new SolidBrush(e.ForeColor), textRect, strFormat);
}