C#中动态修改ListBox的Item的颜色的方法
来源:互联网 发布:广告牌计算软件 编辑:程序博客网 时间:2024/06/02 06:29
最近搞了C#需要在ListBox中显示不同类型的数据,为了让用户容易区分,增加了颜色区分的功能,就是需要不同的类型数据显示出不同的颜色。针对上述的要求我们需要使用控件的重绘方法,就是用重绘的方法激活重绘事件,在重绘事件内修改Item的字体颜色。方法如下(基于DrawItem事件)
一、新建一个C#的窗口应用程序,在form1内添加一个ListBox控件,一个TextBox控件,一个按钮控件;我们要求如下:按一次按钮将文本框内的内容添加到ListBox内,并且ListBox在显示的时候根据Item的内容显示不同的颜色,比如添加的Item内包含了"你好",那么这个Item用绿色来显示;如果包含了"你坏"用红色来表示。界面如下图所示:
二、界面准备完成,我们需要对ListBox控件的属性进行修改,才能使ListBox控件支持DrawItem的事件,我们要在ListBox控件的【DrawMode】属性修改为下图中的任意一个,具体的区别还没有深入研究,我选择的是【OwnerDrawFixed】属性,如下图:
三、还是要选中ListBox控件,在【事件】属性栏内找到【DrawItem】事件,双击,便在CS文件添加了该控件的DrawItem事件的处理函数。如下图
四、添加相应的处理【一】中需求的方法,比如按钮事件,获取文本框的文本并显示在ListBox内;
五、详细源码
using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Windows.Forms;namespace TestListBoxColor{ public partial class Form1 : Form { public Form1() { InitializeComponent(); } // 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); } } private void button1_Click(object sender, EventArgs e) { string str = this.textBox1.Text; this.listBox1.Items.Add(str); } }}六、效果如下,当输入“你好”并按添加按钮的时候相应的ListBox的内容变为的绿色,输入“你坏”的时候变为了红色,达到了我们的要求目的:
OK,到此结束,希望对有这种需求的人有帮助。
0 0
- C#中动态修改ListBox的Item的颜色的方法
- C#中动态修改ListBox的Item的颜色的方法
- C#实现item自定义颜色的ListBox,显示日志
- 在C#中控制ListBox某一行的字体颜色
- ListBox中增加item的双击事件
- 怎么改变listbox的item颜色(C#)
- 怎么改变listbox的item颜色(C#)
- 动态改变Listview的item背景颜色和item中字体的颜色
- 改变ListBox中项的字体颜色。
- 改变ListBox中项的字体颜色。
- 改变ListBox中项的字体颜色。
- WPF重写ListBox的item
- C#让ListBox适应最大Item的宽度
- ToolBar修改menu item的字体颜色
- ToolBar修改menu item的字体颜色
- c#中向listbox添加大量元素的快速方法
- VB.NET中的ListBox右键选中Item的方法
- wpf ListBox 选中项背景颜色的修改
- hadoop-2.0.0-mr1-cdh4.2.2 eclipse插件安装
- 黑马程序员一java关于复制循环运算之特例解析
- 使用Modernizr探测HTML5/CSS3新特性
- C++ 操作 MySQL
- cocos2d-x SpriteFrameCache/TextureCache/AnimationCache
- C#中动态修改ListBox的Item的颜色的方法
- QThread的使用总结
- 摄像机标定技术
- hdu2093 考试排名
- express command not found 解决方案
- Linux xargs命令
- 不平衡类问题总结
- 将两张图像并排显示成一幅图像
- php Yii: 出现undefined offset 或者 undefined index解决方案