C# ListBox 每行显示颜色设置

使用ListBox时,每行显示不同的颜色

1、把AllowHtmlDraw属性设置为True

2、直接在Add或者AddRange里写标签

代码里用的是DEV插件里的ListBox,使用原生的也是一样的写法

使用AddRange写法:

 listBoxControl2.AllowHtmlDraw = DevExpress.Utils.DefaultBoolean.True;

 listBoxControl2.Items.AddRange(new object[] {
"我是红色的 <color=Red>Red</color>",
"<color=Green>我是绿色的</color>",
"<color=Blue>Blue</color> 我是蓝色的"
});

使用Add写法:

listBoxControl.Items.Add("<color=Red>我是红色的</color>");

可以封装一下:

private void ListMsg(string msg, MsgLevel msgLevel)
{
listBoxControl.BeginInvoke(new Action(() =>
{
listBoxControl.Items.Add("<color=" + GetColor(msgLevel) + ">" + DateTime.Now.ToString("HH:mm") + " " + msg + "</color>"); //滚动到最后一行
if (this.listBoxControl.Items.Count > )
{
this.listBoxControl.SelectedIndex = listBoxControl.Items.Count - ;
}
}));
}

枚举:

private enum MsgLevel
{
/// <summary>
/// 0.调试信息输出
/// </summary>
Debug = ,
/// <summary>
/// 1.业务信息记录
/// </summary>
Info = ,
/// <summary>
/// 2.警告提醒(捕获的业务异常)
/// </summary>
Warn = ,
/// <summary>
/// 3.发生了异常(捕获的系统异常)
/// </summary>
Exception = ,
/// <summary>
/// 4.发生致命异常(未被捕获的异常|捕获的业务逻辑异常)
/// </summary>
Fatal =
}
private string GetColor(MsgLevel msgLevel)
{
string strColor = "Black";
switch (msgLevel)
{
case MsgLevel.Debug:
strColor = "Black";
break;
case MsgLevel.Info:
strColor = "Black";
break;
case MsgLevel.Warn:
strColor = "Yellow";
break;
case MsgLevel.Exception:
strColor = "Purple";
break;
case MsgLevel.Fatal:
strColor = "Red";
break;
default:
strColor = "Black";
break;
}
return strColor;
}

随着时光的流逝,或许所有存在的东西都会消失,若最初,我们是奔着一个方向而往,最终,却很有可能会寻觅到了另外一种存在,也并非是忘记初心,而是时光早已赋予它不同的使命。

现实有多残酷,我们就有多坚强。
别说生活欺骗了你世界的模样,取决于你凝聚他的目光。
从怯懦到勇敢,是给自己最好的礼物。

所谓的成长,就是有一天我们可以把最重要的精力,放在最重要的人和最重要的事上。

上一篇:java中String、StringBuffer、StringBuilder的区别


下一篇:获得触发hover事件的元素id