且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

在C#中控制ListBox某一行的字体颜色

更新时间:2022-09-15 14:04:46

例1

在C#中控制ListBox某一行的字体颜色
private void Form1_Load(object sender, EventArgs e)
{
    listBox1.Items.Add("红色");
    listBox1.Items.Add("黄色");
    listBox1.Items.Add("蓝色");
    listBox1.DrawMode = DrawMode.OwnerDrawFixed; // 属性里设置
}

private void listBox1_DrawItem(object sender, DrawItemEventArgs e)
{
    Color vColor = e.ForeColor;
    switch (e.Index)
    {
        case 0: vColor = Color.Red; break;
        case 1: vColor = Color.Yellow; break;
        case 2: vColor = Color.Blue; break;
    }
    e.Graphics.FillRectangle(new SolidBrush(vColor), e.Bounds);
    e.Graphics.DrawString(((ListBox)sender).Items[e.Index].ToString(), e.Font, 
        new SolidBrush(e.ForeColor), e.Bounds);
    e.DrawFocusRectangle();
}
在C#中控制ListBox某一行的字体颜色

 

例2  一种动态渲染颜色的方式

根据字符串的前缀,分别对文字颜色进行渲染。

在C#中控制ListBox某一行的字体颜色
// ListBox DrawItem事件响应函数
private void listBox1_DrawItem(object sender, DrawItemEventArgs e)
{            
    if (e.Index >= 0)
    {
        e.DrawBackground();
        Brush mybsh = Brushes.Black;
        // 判断是什么类型的标签
        if (listBox1.Items[e.Index].ToString().IndexOf("你好") != -1)
        {
            mybsh = Brushes.Green;
        }
        else if (listBox1.Items[e.Index].ToString().IndexOf("你坏") != -1)
        {
            mybsh = Brushes.Red;
        }
        // 焦点框
        e.DrawFocusRectangle();
        //文本 
        e.Graphics.DrawString(listBox1.Items[e.Index].ToString(), e.Font, mybsh, e.Bounds, StringFormat.GenericDefault);
    }     
}
在C#中控制ListBox某一行的字体颜色

 

效果如下,当输入“你好”并按添加按钮的时候相应的ListBox的内容变为的绿色,输入“你坏”的时候变为了红色,达到了我们的要求目的:

 

在C#中控制ListBox某一行的字体颜色

 

例3 隔行显示不同的颜色

要实现这个效果很简单,只需自定义一个类继承ListBox,然后重写OnDrawItem事件就可以了,下面看代码

在C#中控制ListBox某一行的字体颜色 View Code

 效果如下:

在C#中控制ListBox某一行的字体颜色

 

 

 

 

参考文章

顺德早茶 ,  在C#中控制ListBox某一行的字体颜色

C#中动态修改ListBox的Item的颜色的方法

gyzskylistbox隔行显示不同颜色

 

2 一种动态渲染颜色的方式
没有整理与归纳的知识,一文不值!高度概括与梳理的知识,才是自己真正的知识与技能。 永远不要让自己的***、好奇、充满创造力的想法被现实的框架所束缚,让创造力***成长吧! 多花时间,关心他(她)人,正如别人所关心你的。理想的腾飞与实现,没有别人的支持与帮助,是万万不能的。



   本文转自wenglabs博客园博客,原文链接:http://www.cnblogs.com/arxive/p/6126295.html,如需转载请自行联系原作者