设计带图标和自定义颜色的ListBox

在一个点对点文件传输的项目中,我需要显示文件传输的实时信息:传输的文件列表和当前传输的文件,当时我想到了用ListBox,但是但我用了ListBox后,我发现它不能改变控件中文本想的颜色,于是我就想扩展一下ListBox控件------ListBoxEx。

我的目标是给空间加上图标,还要能时时改变控件文本颜色。于是从ListBox派生类

public class ListBoxEx : ListBox {…}

为了操作方便我为ListBoxEx的每一项设计专门的类ListBoxExItem

public class ListBoxExItem {…}

为了保持我这个控件与WinForm的标准控件的操作借口一致,我又重新设计了两个集合类:

public class ListBoxExItemCollection : IList, ICollection, IEnumerator {}
//这个类相对于标准ListBox中的ObjectCollection,这个类作为ListBoxEx中的Items属性的类型
public class SelectedListBoxExItemCollection : : IList, ICollection, IEnumerator{}
//这个类相对于标准ListBox中的SelectedObjectCollection,这个类作为ListBoxEx中的SelectedItems属性的类型

下面看两个集合类的实现:

ListBoxExItemCollection的实现:为了做到对集合(Items)的操作能够及时反映到ListBoxEx的控件中所以,此类只是对ListBox中Items(ObjectCollection类型)作了一层包装,就是把ListBox中Items属性的所有方法的只要是object类型的参数都转换成ListBoxExItem,比如:

public void Remove(ListBoxExItem item)
{
 this._Items.Remove(item); //_Items为ObjectCollection类型
}
public void Insert(int index, ListBoxExItem item)
{
 this._Items.Insert(index, item);
}
public int Add(ListBoxExItem item)
{
 return this._Items.Add(item);
}

由上可知,ListBoxExItemCollection中有一个构造函数来传递ListBox中的Items对象

private ObjectCollection _Items;
public ListBoxExItemCollection(ObjectCollection baseItems)
{
 this._Items = baseItems;
}

时间: 2024-10-02 03:59:02

设计带图标和自定义颜色的ListBox的相关文章

C#设计带图标和自定义颜色的ListBox

设计 在一个点对点文件传输的项目中,我需要显示文件传输的实时信息:传输的文件列表和当前传输的文件,当时我想到了用ListBox,但是但我用了ListBox后,我发现它不能改变控件中文本想的颜色,于是我就想扩展一下ListBox控件------ListBoxEx. 我的目标是给空间加上图标,还要能时时改变控件文本颜色.于是从ListBox派生类 public class ListBoxEx : ListBox {-} 为了操作方便我为ListBoxEx的每一项设计专门的类ListBoxExItem

CIconListBox带图标的列表框类

有时候,我们需要在列表框ListBox中插入带图标的文字项,这就需要自己派生一个类出来了,网上的一个CIconListBox类还不错,网站http://www.codeguru.com/Cpp/controls/listbox/article.php/c4749/ 这里介绍下使用方法,源代码我有改动,环境Visual Studio 2008 SP1:1.基于对话框的工程,名称为IconListBoxTest;2.拖动控件到对话框上,按下图所示排列: 3.导入IconListBox.cpp和Ico

Silverlight实用窍门系列:43.Silverlight从ListBox拖拽图标到另一ListBox【附带源码实例】

在本实例中我们将从ListBox中拖出一个图标到另外一个ListBox中,这是一个比较有用的小功能,在这里我们首先来看运行效果(点击下面的图片即可拖动左边的图标到右边的ListBox中去). 在线演示 实现过程是:1.我们把这个过程分为鼠标左键点击到左边的图标,使用Image_MouseLeftButtonDown事件.(设置一个标识符,标示当前已经被鼠标点击下去) 2.点击到这个图标不放,在整个Canvas内移动,使用LayoutRoot_MouseMove事件(此时设置一个图标跟随鼠标的位置

给Notepad++ 6.7 加右键菜单带图标

使用的是Notepad++ 6.7,下载 NppShell64.dll 和 NppShell.dll方法:将BAT文件和下载的NppShell64.dll 和 NppShell.dll放置Notepad++根目录下,运行BAT. 以下为BAT文件: @Echo Off title Notepad++右键菜单添加or卸载工具 echo. if %processor_architecture%==x86 (echo 你的系统是32位) else ( echo 你的系统是64位 ) echo. Set

《机器人爱好者(第2辑)》——设计带机械臂和机械手的机器人

设计带机械臂和机械手的机器人 有不少玩家在一开始制作的是相对简单的底盘,后期再增加带机械手的操纵器,这种做法当然是可行的.不过,如果能在设计时就考虑好机械臂和机械手的部署,那就更好了.请务必牢记,设计机械臂时有诸多因素需要考虑. 图6展示的是CrustCrawler机器人(Alex Dirks于2010年推出),这款机器人设计得很好,机械臂之外留有一块干干净净的空间,大小约是45.7厘米×35.6厘米.机器人内部也留有10.2厘米见方的空间,用以安装电子设备.CrustCrawler Nomad

Illustrator设计复活节图标制作教程

给各位llustrator软件的使用者们来详细的解析分享一下设计复活节图标的制作教程. 教程分享: 复活节是一个可爱的属于春天的节日,以它传统的彩蛋而为人所知.通常让人将它与温暖.丰富的色彩和春天般的心情联想在一起.在本篇教程里面,我们讲通过对制作过程的详解,通过运用基本的形状,路径查找器和一些新出现的AI里面的工具来制作本次课程的复活节彩蛋!(是不是有点小期待呢~~~) 当然,除了在制作复活节彩蛋的制作过程中会运用到,这些技术同样可以被运用在制作任何类型的平面图标或者平面banner方面.通过

Illustrator设计苹果图标绘制教程分享

给各位Illustrator软件的使用者们来详细的解析分享一下设计苹果图标的绘制教程. 教程分享:   好了,以上的信息就是小编给各位Illustrator的这一款软件的使用者们带来的详细的设计苹果图标的绘制教程解析分享的全部内容了,各位看到这里的使用者们,小编相信大家看到这里了是很清楚了绘制方法了吧,那么大家就快去按照小编的教程自己去绘制一下苹果图标吧.

Illustrator设计汉堡图标绘制教程

给各位Illustrator软件的使用者们来详细的解析分享一下设计汉堡图标的绘制教程. 教程分享:               好了,以上的信息就是小编给各位Illustrator的这一款软件的使用者们带来的详细的设计汉堡图标的绘制教程解析分享的全部内容了,各位看到这里的使用者们,小编相信大家看到这里也是很清楚了绘制方法了吧,总的来说其实没有那么难的,只要大家去多多的练习下,各位也能给很快的绘制出来噢.

Illustrator设计大脑图标绘制技巧教程

给各位Illustrator软件的使用者们来详细的解析分享一下设计大脑图标绘制技巧的教程. 教程分享: 第1步-研究 收集一些参考材料和图像/大脑的插图.医学书籍是一个不错的来源.大脑是一个整体构成椭圆形的,然后还有小脑和脑干.从前面看,/顶视图,大脑是两极和两个半球组成.   Step 2 绘制 在使用AI之前,我喜欢在纸上画一个草图或一个数字草图.尤其如此一个复杂的形式,因为您不清楚将是什么样子. 当你要输出你想象中的大脑图形的时候, 考虑一下几点: 观点 – 你用哪一边的大脑表现? 从一个