程式碼:
using System;
using System.Drawing;
using System.Linq;
using System.Windows.Forms;
namespace Test
{
public partial class Form1 : Form
{
/// <summary>
/// Odd
/// </summary>
private readonly SolidBrush BRUSH_GRAY = new SolidBrush(Color.Gray);
/// <summary>
/// even
/// </summary>
private readonly SolidBrush BRUSH_BLUE = new SolidBrush(Color.Blue);
public Form1()
{
InitializeComponent();
//自行繪製
listBox1.DrawMode = DrawMode.OwnerDrawFixed;
foreach (var n in Enumerable.Range(1, 50))
{
listBox1.Items.Add(n);
}
listBox1.DrawItem += (s, e) =>
{
if (e.Index < 0)
return;
var brushRect = new SolidBrush(Color.White);
e.Graphics.FillRectangle(brushRect, e.Bounds);
var str = listBox1.Items[e.Index].ToString();
var number = Convert.ToInt16(str);
var brush = (number % 2 != 0) ? BRUSH_GRAY : BRUSH_BLUE;
e.Graphics.DrawString(str, Font, brush, e.Bounds);
e.DrawFocusRectangle();
};
}
}
}
執行結果:
