`
shirlly
  • 浏览: 1652041 次
  • 性别: Icon_minigender_2
  • 来自: 福州
社区版块
存档分类
最新评论

改变Listbox中的字体颜色

    博客分类:
  • .NET
阅读更多
当用ListBox来作输出显示的时候,有时需要针对不同的输出显示不同的颜色,比如当用ListBox来作告警输出的时候,需要根据不同的告警等级来显示不同的颜色,以达到醒目的作用,其实用ListBox来做这种事情很容易。
        首先把ListBox的DrawMode设为OwnerDrawFixed或是OwnerDrawVariable,然后在ListBox的DrawItem事件中加入下面的代码
private void listBox_DrawItem(object sender, DrawItemEventArgs e)
        {
            Brush FontBrush = null;
            ListBox listBox = sender as ListBox;
            if (e.Index > -1)
            {
                switch (listBox.Items[e.Index].ToString())
                {
                    case "Critical": FontBrush = Brushes.Brown; break;
                    case "Major": FontBrush = Brushes.Red; break;
                    case "Minor": FontBrush = Brushes.Orange; break;
                    case "Warning": FontBrush = Brushes.Yellow; break;
                    default: FontBrush = Brushes.Black; break;
                }
                e.DrawBackground();
                e.Graphics.DrawString(listBox.Items[e.Index].ToString(), e.Font, FontBrush, e.Bounds);
                e.DrawFocusRectangle();
            }
        }



即可。
完整的程序代码如下:以下代码在vs2005中测试通过
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
 
namespace ListBoxDataGrid
{
    public partial class ListBoxForm : Form
    {
        public ListBoxForm()
        {
            InitializeComponent();
        }
        private void listBox_DrawItem(object sender, DrawItemEventArgs e)
        {
            Brush FontBrush = null;
            ListBox listBox = sender as ListBox;
            if (e.Index > -1)
            {
                switch (listBox.Items[e.Index].ToString())
                {
                    case "Critical": FontBrush = Brushes.Brown; break;
                    case "Major": FontBrush = Brushes.Red; break;
                    case "Minor": FontBrush = Brushes.Orange; break;
                    case "Warning": FontBrush = Brushes.Yellow; break;
                    default: FontBrush = Brushes.Black; break;
                }
                e.DrawBackground();
                e.Graphics.DrawString(listBox.Items[e.Index].ToString(), e.Font, FontBrush, e.Bounds);
                e.DrawFocusRectangle();
            }
        }
        private void button_Click(object sender, EventArgs e)
        {
            if (!textBox.Text.Length.Equals(0)) 
                listBox.Items.Add(textBox.Text);
        }
    }
}



转自:http://www.cnblogs.com/aaliujing/archive/2007/01/29/633689.html
分享到:
评论

相关推荐

    MFC 实现ListBox每行颜色的改变

    本教程将详细讲解如何实现ListBox控件每行颜色的改变,以增强界面的可读性和用户体验。 首先,我们需要理解ListBox的基本用法。在MFC中,ListBox通常通过CListBox类进行操作。我们可以在OnInitDialog()函数中初始化...

    c# 一个listbox的行字体颜色应用

    本示例探讨的是如何实现`ListBox`控件中每一行文本的颜色自定义,即“c# 一个listbox的行字体颜色应用”。这个技巧能够帮助开发者提升用户界面的视觉效果,例如通过不同颜色来区分不同类型的条目或突出重要的信息。 ...

    改变控件的背景颜色(LISTBOX)

    在WPF中,颜色改变通常在XAML中完成,或者在代码-behind中通过设置`Background`属性。XAML中的示例: ```xml <ListBox Background="Azure" /> ``` 或者在C#代码中: ```csharp listBox.Background = new ...

    clistbox根据情况改变字体颜色

    本实例重点在于如何根据特定情况动态地改变`CListBox`中项的字体颜色,以提高界面的交互性和信息传递效率。下面我们将详细探讨如何实现这一功能。 首先,我们需要理解`CListBox`的基本操作。`CListBox`继承自`CWnd`...

    ListBox自画条目背景和文字颜色地

    在标准的ListBox控件中,条目的背景和文字颜色通常是系统默认的,但有时我们需要根据应用的需求自定义这些颜色以实现个性化或者增强用户体验。本主题将深入探讨如何在VC++环境下自定义ListBox的条目背景和文字颜色。...

    VC 适时改变文本编辑框中的文字颜色.rar

    在VC++编程环境中,改变文本编辑框(通常是CEdit控件)中的文字颜色是一项常见的需求。这个"VC 适时改变文本编辑框中的文字颜色.rar"压缩包提供的示例可能包含了一个简单的应用程序,允许用户通过单选按钮选择不同的...

    ListBox中显示复选框

    在Windows编程中,尤其是使用Visual Studio(如VS2010)进行MFC(Microsoft Foundation Classes)开发时,我们有时需要...在实际项目中,你可能还需要根据需求定制更多功能,如改变字体、颜色,或者响应其他用户事件。

    CListBox中设置文本的颜色(字体)

    这个主要是用vc开发的一个文本颜色的CListBox控件, 添加一个颜色处理类,并继承CListBox,然后添加颜色控件的变量,在addString(文本,rgb),就完成了,就这么简单,代码运行可以看到结果!

    log_listbox_src.zip_ListBox_list box_listbox字体

    在自定义ListBox字体和颜色的过程中,开发者可能会使用到如SetWindowText、DrawText等Windows API函数,或者在MFC(Microsoft Foundation Classes)框架中使用CListBox类的成员函数。例如,可能通过SetFont函数设置...

    自定义ListBox的颜色.rar

    在默认情况下,ListBox的外观通常由操作系统或浏览器的主题决定,包括颜色、字体样式等。然而,有时候为了满足特定的设计需求或者提升用户体验,我们可能需要自定义ListBox的颜色,使其与整体界面风格保持一致。本文...

    在listbox中显示每个Item的Tooltip

    在提供的压缩包文件中,"hyperlink.cur"可能是一个鼠标光标资源,用于改变鼠标指针形状,比如当鼠标悬停在带有超链接的Listbox Item上时。而"ItemTooltip.pbl"可能是一个PowerBuilder库文件,其中可能包含了实现上述...

    VC中为CListBox控件加背景色,字体颜色的例子

    首先,为了改变CListBox控件的背景色和字体颜色,我们需要创建一个新的类,该类继承自CListBox,并重写一些关键的成员函数。这个过程涉及以下步骤: 1. 定义新类: 创建一个新的头文件(如MyListBox.h),并定义一...

    Windows界面编程第八篇 listbox彩色显示隔行变色

    《Windows界面编程第八篇 listbox彩色显示隔行变色》 http://blog.csdn.net/morewindows/article/details/8656061 配套程序 示范了如何彩色显示listbox控件,并让其隔行变色。 Win32或MFC程序均能使用。

    Delphi实现Listbox中的item根据内容显示不同颜色的方法

    针对题目中的场景,我们要实现一个功能,即在ListBox控件中,每个item(列表项)根据其内容显示不同的颜色。这通常涉及到控件的自绘(Owner Draw)技术。以下是一个详细的步骤解释和示例代码,教你如何实现这一功能...

    VC ListBox颜色下拉框编程实例.rar

    在这个实例中,开发者可能在ComboBox的下拉列表接收到WM_DRAWITEM消息时,根据项目的索引或数据关联颜色,使用SetBkColor、SetTextColor等GDI函数来设置背景和文字颜色,然后调用DrawText函数绘制带有颜色的文本。...

    ColoredListBox.rar_c# listbox 颜色

    然而,在某些情况下,我们可能希望根据数据或逻辑给不同的列表项赋予不同的背景色或文字颜色,以提高视觉效果或突出重要信息。这就需要用到自定义控件或者扩展默认控件的功能。 首先,我们需要创建一个新的用户控件...

    Multicolumn Listbox.zip_labview列表框_labview多列框_listbox 多列_multi

    在这个例子中,“Multicolumn Listbox.vi”演示了如何改变多列列表框项名的颜色以及项名内的字体颜色。在LabVIEW中,可以通过编程方式修改控件的属性,包括颜色、字体样式、大小等。这通常是通过控件的“创建引用”...

    重绘ListBox控件

    然而,开发者有时需要自定义ListBox的显示样式,例如改变字体、颜色、背景或者添加自定义图形,这就涉及到“重绘”ListBox控件的知识点。 重绘ListBox主要是通过覆盖控件的OnPaint方法来实现的。在OnPaint方法中,...

    c# 重写的listbox 有比较好看的样式

    在WPF中,我们可以使用`ControlTemplate`来改变ListBox的整体外观。`ControlTemplate`允许我们指定控件的各个部分,如边框、背景、滚动条等,从而实现完全自定义的样式。例如,我们可以通过XAML代码创建一个新的`...

Global site tag (gtag.js) - Google Analytics