不确定你是用winform 还是web。。我是用winform做出来的!!
1.在load 加载初始数据!
private void Form2_Load(object sender, EventArgs e)
{
listBox1.Items.Add("常规");
listBox1.Items.Add("斜体");
listBox1.Items.Add("粗体");
listBox1.Items.Add("粗体斜体");
//这句话很关键关键,如果没这句,那么DrawItem是不生效的
listBox1.DrawMode = DrawMode.OwnerDrawFixed;
}
2.实现DrawItem事件。。
private void listBox1_DrawItem(object sender, DrawItemEventArgs e)
{
e.DrawBackground();
if (e.Index > -1)
{
Font f = null;
switch (e.Index)
{
case 0:
f = new Font("宋体", 9, FontStyle.Regular);
e.Graphics.DrawString(Convert.ToString(listBox1.Items[e.Index]), f, Brushes.Red, e.Bounds);
break;
case 1:
f = new Font("宋体", 9, FontStyle.Italic);
e.Graphics.DrawString(Convert.ToString(listBox1.Items[e.Index]), f, Brushes.Yellow, e.Bounds);
break;
case 2:
f = new Font("宋体", 9, FontStyle.Bold);
e.Graphics.DrawString(Convert.ToString(listBox1.Items[e.Index]), f, Brushes.SteelBlue, e.Bounds);
break;
case 3:
f = new Font("宋体", 9, FontStyle.Italic | FontStyle.Bold);
e.Graphics.DrawString(Convert.ToString(listBox1.Items[e.Index]), f, Brushes.Gray, e.Bounds);
break;
}
}
}
3.最终效果如下:
这个花了我些时间,希望对你有帮助,有问题可以在讨论,加油!!!
不能!!,除非你重绘!!
你是说选中的项变换字体吗? 那个貌似只有自己画